Ribbon负载均衡的实现

一.Ribbon自己提供的七种策略

1.1 Ribbon提供的策略及其功能效果介绍

轮询:一个节点一次无限循环的调。

随机:如其名随机的,服务节点随机无规则的调。

重试:按照轮询的策略获取服务,如果失败则会在指定的时间内一直重试轮询获取可用服务,默认时间500毫秒,可自定义时间。

权重:初始化时去统计每一个服务的权重,时间越长,权重(weight)越小,被选中的可能性就越小。

空闲:过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务。

过滤:先过滤掉由于多次访问故障而处于熔断器跳闸状态的服务,还有并发的连接数量超过阈值的服务,然后对剩余的服务列表按照轮询策略进行访问

大区过滤:先过滤调不可用的区域服务,在过滤调有故障或者超阈值的服务,剩下的服务轮询

1.2 实现方式

二.自定义算法

2.1   主启动类配置开启自定义算法:

ribbon中具体实现负载均衡的策略是通过IRule这个接口来实现的,接口实现结构图

name:指定对使用算法的服务名称SelfRule.class)   配置

注意:

从上面这段话的意思是说,自定义的MySelfRule类不能和启动类在同级或者同一个包下

  2.2  Eureka结合Ribbon负载均衡时如何调用,下图为调用实列:

PRODUCTACLIENT:服务的名称
getuser:在该服务下的节点中的提供调用的服务方法方法

猜你喜欢

转载自www.cnblogs.com/KdeS/p/12033538.html