ribbon 配置 动态更新_SpringCloud——客户端负载均衡的组件:Ribbon

1.Ribbon的介绍

如何在idea里面同时创建出一个服务的集群。

040706a8f78ceb016e8e500ed104a8bc.png

1)什么是Ribbon?

实现客户端的负载均衡的工具。Ribbon客户端组件提供了一系列完善的配置,比如超时、重试等等。

Ribbon会基于某种规则进行负载均衡,轮询、随机等等。Ribbon也可以实现我们自己定义的负载均衡算法。

2)什么是客户端的负载均衡

什么是服务端的负载均衡

Nginx是一个服务端的负载均衡工具。

bdbaac6493c2dc30c9088e6df688709e.png

当客户端需要服务的时候,具体调用到哪一台服务器,这是nginx说了算,客户端说了不算。

客户端的负载均衡

d1b1223a8894dd24683fafeb223282b3.png

2.Ribbon进行负载均衡的详细过程

5e9c2bde9b47cd4831efb776c0ae2dd1.png

3. Ribbon的负载均衡策略

配置Ribbon的负载均衡策略

在配置类中,去创建出一个IRule对象,IRule不同的实现类就是不同的负载均衡策略。

@Configuration
public class MyConfig {



 @LoadBalanced
    @Bean
 public RestTemplate getRestTemplate(){
 return new RestTemplate();
    }

 @Bean
 public IRule MyRule(){
 return new RandomRule();
    }


}

如果ribbon中的服务地址列表中某一个服务下线了,那么ribbon会去重新获取eurekaServer上的新的地址列表。

此时地址列表就更新了,如果更新后的地址列表依然有服务不能服务,那么ribbon就会在自己的地址列表中把该服务的地址去除。每隔10秒钟,ribbon又会进行一次与eurekaServer之间的对地址列表进行更新。于是下线的服务就不会被访问到。

1)RandomRule 随机选择一个Server

2)RetryRule 如果访问某个server不成功,那么就会一直重试。

3)RoundRobinRule 轮询访问每一个Server

4)WeightedResponseTimeRule 根据响应时间加权,响应时间越长,权重越小,被选中的概率越低。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值