LoadBalancerClient 实现负载均衡的简单原理

LoadBalancerClient 翻译过来就是负载均衡客户端:

LoadBalancerClient取=寻找服务的简单流程:
Ribbon 里面封装了 获取全部服务的接口(getallserverlists的方法), 其中通过filter过滤一部分服务,然后, Ribbon 的IRule对象, 选择一个有效的服务返回给调用方,(其中IRul默认是通过轮训的方式,返回一个服务).
springcloud提供了LoadBalancerClient,它继承了ribbon的接口.我们之间引入这个LoadBalancerClient就可以进行服务的查找

我们在springcloud中创建一个LoadBalancerClient,然后去追踪代码的形式,看看他的大致获取服务原理:

其实他的实现只有一个就是RibbonLoadBalancerClient

choose调用的this.getServer

然后接着向下找

你会发现我们前面所说的role出现了.

这句代码应该可以看得懂,默认的就是 new RoundRobinRule(),就是循环的规则.我们所说的轮训的方式,他是怎么轮训的呢?

可以继续追踪代码,调用的父类的方法...我们大概了解到这就可以了,以为我们一般也不需要去改变这个获取服务的方式.

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值