写点什么

Ribbon

作者:想要飞的猪
  • 2022 年 9 月 29 日
    广东
  • 本文字数:569 字

    阅读完需:约 2 分钟

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 进行,链接数是否超数,是否超时 可用,然后在返回。

修改默认策略:

#针对的被调⽤⽅微服务名称,不加就是全局⽣效 service-name:  ribbon:     NFLoadBalancerRuleClassName:       com.netflix.loadbalancer.RandomRule #负载策略调整
复制代码


用户头像

还未添加个人签名 2020.06.05 加入

还未添加个人简介

评论

发布
暂无评论
Ribbon_Ribbon_想要飞的猪_InfoQ写作社区