客户端负载均衡_负载均衡策略

客户端负载均衡_负载均衡策略_第1张图片

以前的Ribbon有多种负载均衡策略

RandomRule - 随性而为

客户端负载均衡_负载均衡策略_第2张图片

解释:

随机

RoundRobinRule - 按部就班

客户端负载均衡_负载均衡策略_第3张图片

解释:

轮询

RetryRule - 卷土重来

客户端负载均衡_负载均衡策略_第4张图片

解释:

先按照RoundRobinRule的策略获取服务,如果获取服务失败则在指定时间内会进行重试。

WeightedResponseTimeRule - 能者多劳

这个Rule继承自RoundRibbonRule,他会根据服务节点的响应时间计算权重,响应时间越长权重就越低,响应越快则权重越高,权重的高低决定了机器被选中概率的高低。也就是说,响应时间越小的机器,被选中的概率越大。

客户端负载均衡_负载均衡策略_第5张图片

解释:

对RoundRobinRule的扩展,响应速度越快的实例选择权重越大,越容易被选择

BestAvailableRule - 让最闲的人来

客户端负载均衡_负载均衡策略_第6张图片

解释:

应该说这个Rule有点智能的味道了,在过滤掉故障服务以后,它会基于过去30分钟的统计结果选取当前并发量最小的服务节点,也就是最“闲”的节点作为目标地址。如果统计结果尚未生成,则采用轮询的方式选定节点。

AvailabilityFilteringRule - 我是有底线的

这个规则底层依赖RandomRobinRule来选取节点,但并非来者不拒,它也是有一些底线的,必须要满足它的最低要求的节点才会被选中。如果节点满足了要求,无论其响应时间或者当前并发量是什么,都会被选中。

客户端负载均衡_负载均衡策略_第7张图片

解释:

每次AvailabilityFilteringRule(简称AFR)都会请求RobinRule挑选一个节点,然后对这个节点做以下两步检查:是否处于不可用,节点当前的active请求连接数超过阈值,超过了则表示节点目前太忙,不适合接客如果被选中的server不幸挂掉了检查,那么AFR会自动重试(次数最多10次),让RobinRule重新选择一个服务节点。

ZoneAvoidanceRule - 我的地盘我做主

客户端负载均衡_负载均衡策略_第8张图片

解释:

默认规则,复合判断server所在区域的性能和server的可用性选择服务器

但LoadBalancer只提供了两种负载均衡器

  • RandomLoadBalancer 随机
  • RoundRobinLoadBalancer 轮询

注意:

不指定的时候默认用的是轮询

你可能感兴趣的:(负载均衡,运维)