Ribbon使用

1. 什么是Ribbon

是 Netflixfa 发布的一个负载均衡器,有助于控制 HTTP 和 TCP客户端行为。在 SpringCloud 中,Eureka一般配合Ribbon进行使用,Ribbon提供了客户端负载均衡的功能,Ribbon利用从Eureka中读取到的服务信息,在调用服务节点提供的服务时,会合理的进行负载。在SpringCloud中可以将注册中心和Ribbon配合使用,Ribbon自动的从注册中心中获取服务提供者的
列表信息,并基于内置的负载均衡算法,请求服务

2. Ribbon的主要作用

  1. 服务调用

基于Ribbon实现服务调用, 是通过拉取到的所有服务列表组成(服务名-请求路径的)映射关系。借助
RestTemplate 最终进行调用

  1. 负载均衡

当有多个服务提供者时,Ribbon可以根据负载均衡的算法自动的选择需要调用的服务地址

3. Ribbon使用

  1. 引入依赖
    eureka中自动依赖ribbon,所以不需要单独引入

  2. 使用@LoadBalanced 开启

 @LoadBalanced  //使用ribbon的@LoadBalanced
    @Bean
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }

//配合RestTemplate直接写服务名称即可
 String url = StrUtil.format("http://service-product/product/list?ids={}",
                StrUtil.join(",", idList));
  1. 更改ribbon负载均衡策略
    ribbon默认使用轮询的策略
# ribbon的负载均衡策略修改  服务名 - ribbon - NFLoadBalancerRuleClassName : 策略的全类名
service-product:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #随机策略
  1. ribbon的重试机制

在这里插入图片描述
添加重试的依赖

<dependency>
    <groupId>org.springframework.retry</groupId>
    <artifactId>spring-retry</artifactId>
</dependency>

更新配置文件

ribbon:
  MaxAutoRetriesNextServer: 2  //向后更换几台服务器进行重试
  MaxAutoRetries: 1  //对单台服务器的重试次数
  OkToRetryOnAllOperations: true //是否对所用类型请求都进行重试,默认支队get重试
  ConnectionTimeout: 时间 //简历连接的超时时间
  ReadTimeout:时间 //接受相应的超时时间
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值