SpringCloudAlibaba-负载均衡Ribbon

SpringCloudAlibaba-负载均衡Ribbon[编程语言教程]

简介

Ribbon是Spring Cloud的一个组件, 它可以让我们使用一个注解就能轻松的搞定负载均衡,内置多种负载均衡策略,内部负载均衡顶级接口为com.netflix.loadbalancer.IRule:具体策略如下

1:BestAvailableRule  选择一个最小的并发请求的server   
    逐个考察Server,如果Server被tripped了,则忽略,在选择其中ActiveRequestsCount最小的server 
2:AvailabilityFilteringRule  过滤掉那些因为一直连接失败的被标记为circuit tripped的后端server,并过滤掉那些高并发的的后端server(activeconnections 超过配置的阈值)   
    使用一个AvailabilityPredicate来包含过滤server的逻辑,其实就就是检查status里记录的各个server的运行状态 
3:WeightedResponseTimeRule  根据相应时间分配一个weight,相应时间越长,weight越小,被选中的可能性越低。    
    一个后台线程定期的从status里面读取评价响应时间,为每个server计算一个weight。Weight的计算也比较简单responsetime 减去每个server自己平均的responsetime是server的权重。当刚开始运行,没有形成statas
    时,使用roubine策略选择server。
4:RetryRule  对选定的负载均衡策略机上重试机制    
    在一个配置时间段内当选择server不成功,则一直尝试使用subRule的方式选择一个可用的server
5:RoundRobinRule  轮询方式轮询选择server    
    轮询index,选择index对应位置的server
6:RandomRule 随机选择一个server
    在index上随机,选择index对应位置的server    
7:ZoneAvoidanceRule   复合判断server所在区域的性能和server的可用性选择server 
    使用ZoneAvoidancePredicate和AvailabilityPredicate来判断是否选择某个server,前一个判断判定一个zone的运行性能是否可用,剔除不可用的zone(的所有server),AvailabilityPredicate用于过滤掉连接
    数过多的Server。
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » SpringCloudAlibaba-负载均衡Ribbon