Spring Cloud 学习笔记三:搭建微服务工程之Ribbon 负载均衡策略

目录

Ribbon 负载均衡策略


Ribbon 负载均衡策略

Ribbon 作为一款客户端负载均衡框架,默认的负载策略是轮询,同时也提供了很多其他的策略,能够让用户根据自身的业务需求进行选择。

负载策略

 

BestAvailableRule

最低并发策略:选择一个最小的并发请求的 Server,逐个考察 Server,如果 Server 被标记为错误,则跳过,然后再选择 ActiveRequestCount 中最小的 Server。

AvailabilityFilteringRule

可用过滤策略:过滤掉连接失败的服务节点,并且过滤掉高并发的服务节点,然后从健康的服务节点中,使用轮询策略选出一个节点返回。

ZoneAvoidanceRule

区域权重策略:使用 ZoneAvoidancePredicateAvailabilityPredicate 来判断是否选择某个 Server,前一个判断判定一个 Zone 的运行性能是否可用,剔除不可用的 Zone(的所有 Server),AvailabilityPredicate 用于过滤掉连接数过多的 Server。

RandomRule

随机策略:使用 jdk 自带的随机数生成工具,生成一个随机数,然后去可用服务列表中拉取服务节点 Server。如果当前节点不可用,则进入下一轮随机策略,直到选到可用服务节点为止。

RoundRobinRule

轮询策略:拿到所有的 Server 集合,然后根据 id 进行遍历。这里的 id 是 ip + 端口,Server 实体类中定义的 id 属性如下:

this.id = host + ":" + port;

注意:轮询策略有一个上限,当轮询了10个服务端节点还没有找到可用服务的话,轮询结束。

RetryRule

重试策略:首先使用轮询策略进行负载均衡,如果轮询失败,则再使用轮询策略进行一次重试,相当于重试下一个节点,看下一个节点是否可用,如果再失败,则直接返回失败。

注意:重试的时间间隔,默认是500毫秒,我们可以自定义这个重试时间间隔。

this.maxRetryMillis = 500L;

 

ResponseTimeWeightedRule

响应时间权重策略:作用同 WeightedResponseTimeRule,后来改名为 WeightedResponseTimeRule

WeightedResponseTimeRule

响应时间权重策略:根据响应时间,分配一个权重 weight,响应时间越长,weight 越小,被选中的可能性越低。

注意:服务刚启动时,由于统计信息不足,先使用轮询策略。等到信息足够了,切换到WeightedResponseTimeRule策略。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stary1993

你的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值