Ribbon
Ribbon
负载均衡的原理就是把所有可用的服务器拿到,然后根据一定的算法,决定一个要请求的服务器。
负载均衡:主要分为服务端与客户端
服务端 --> 硬负载),nginx(软负载)
客户端:Ribbon
Ribbon 负载均衡策略:
ZoneAvoiddanceRule(区域权衡策略):默认策略,该策略扩展了轮询策略,继承了两个过滤器: ZoneAvoidancePredicate 和 AvailabilityPredicate,去除了超时和链接数过多的 server,以及过滤掉不符合 zone 的相关 server,然后在剩下的 server 中进行轮询调用。
RoundRobinRule(轮询策略):轮询所有 server 进行获取,默认 10 获取不到则返回一个空的 server;
RandomRule(随机策略):如果获取到的 server 为空或者不可用,则一直 while 循环获取;
RetryRule(重试策略):一定时限内轮询重试,继承了轮询策略,把获取到的 server 进行 null 判断 以及 alive 判断,在 500 毫秒内一直判断;
BestAvailableRule(最小链接数): 遍历 serverList ,获取链接数最小的 server,如果没有获取到的 server 为 null,则调用轮询策略进行获取;
AvailabilityFilteringRule(可用过滤策略):扩展了轮询策略,把获取到的 server 进行,链接数是否超数,是否超时 可用,然后在返回。
修改默认策略:
复制代码
评论