ribbon支持的负载均衡策略主要有九种:1、线性轮询策略;2、重试策略;3、加权响应时间策略;4、随机策略;5、客户端配置启动线性轮询策略;6、最空闲策略;7、过滤性线性轮询策略;8、区域感知轮询策略;9、可用性过滤策略。 1、线性轮询策略: RoundRibbonRule BaseLoadBalancer 负载均衡器默认采用线性负载轮询负载均衡策略。
/** * 修改Ribbon负载均衡策略, 替代默认的轮询 * @see RoundRobinRule 轮询策略,默认负载均衡策略 * @see RandomRule 随机策略 * @see WeightedResponseTimeRule 权重策略, 根据平均响应时间计算服务权重, 响应时间越快服务权重越大, 被选中概率越高. * @see ZoneAwareLoadBalancer 复合判断server所在区域的性能和...
ResponseTimeWeightedRule 响应时间加权重策略 根据服务的响应时间分配权重,响应时间越长,权重越低,被选择到的概率也就越低。响应时间越短,权重越高,被选中的概率越高,这个策略很贴切,综合了各种因素,比如:网络,磁盘,io等,都直接影响响应时间 ZoneAvoidanceRule 区域权重策略 综合判断服务所在区域的性能,和服务的可用性...
可以看到,Nginx是属于服务器端的负载均衡,Ribbon是属于客户端的负载均衡,简而言之,Nginx的客户端发起请求不知道会被负载到哪台服务器上,但是Ribbon发起的请求都是非常明确的,就像调用本地服务一样,更广的范围说:Nginx是进程之间调用时候做的负载均衡,Ribbon是进程内部选择调用时候做的负载均衡~ 所以微服务架构采用的就...