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的平均响应时间计算其权重,响应时间越快权重越大,被选中的机率就越高。
在刚启动时采用轮询策略。后面就会根据权重进行选择了。