Ribbon的负载均衡策略

Ribbon的默认内置了7种负载均衡策略:

 

1、RoundRobinRule

  轮询策略,Rabbon默认采用的策略,若经过一轮轮询没有找到可用的provider(提供者),其最多轮询10轮,若最终

      没有找到,则返回NULL。

      举例:当前有3个提供者A,B,C,先挨个轮询1遍,A,B,C都不访问(1轮),在A,B,C访问一遍(2轮次),一共试10轮

                如果还不能访问,则返回NULL。

 

2、RandomRule

  随机策略,从所有可用的provider(提供者)中选择一个。

 

3、RetryRule

  重试策略,先按照RoundRobinRule策略获取provider(策略者)能获取到直接返回,若获取失败,则在指定的时限内重试,

       默认的时限为500毫秒。【RoundRobinRule轮询策略,默认是10轮,而RetryRule我给你500毫秒,你可以一直重试,直到找到为止】

 

4、BestAvailableRule

  最可用策略。选择并发量最小的provider(提供者), 即连接的消费者数量最少的provider 。

 

5、AvailabilityFilteringRule

  可用过滤算法。该算法规则是:过滤掉处于熔断状态的provider与已经超过连接极限的provider,对剩余provider采用轮询策略。

 

6、ZoneAvoidanceRule

  zone回避策略。根据provider所在zone及provider的可用性,对provider进行选择。

 

7、WeightedResponseTimeRule

  “权重响应时间”策略。根据每个provider的平均响应时间计算其权重,响应时间越快权重越大,被选中的机率就越高。

     在刚启动时采用轮询策略。后面就会根据权重进行选择了。

 

posted @ 2020-10-11 21:35  兔兔福  阅读(1830)  评论(0编辑  收藏  举报