loadbalancerclient 翻译过来就是负载均衡客户端:
loadbalancerclient取=寻找服务的简单流程:
ribbon 里面封装了 获取全部服务的接口(getallserverlists的方法), 其中通过filter过滤一部分服务,然后, ribbon 的irule对象, 选择一个有效的服务返回给调用方,(其中irul默认是通过轮训的方式,返回一个服务).
springcloud提供了loadbalancerclient,它继承了ribbon的接口.我们之间引入这个loadbalancerclient就可以进行服务的查找
我们在springcloud中创建一个loadbalancerclient,然后去追踪代码的形式,看看他的大致获取服务原理:
其实他的实现只有一个就是ribbonloadbalancerclient
choose调用的this.getserver
然后接着向下找
你会发现我们前面所说的role出现了.
这句代码应该可以看得懂,默认的就是 new roundrobinrule(),就是循环的规则.我们所说的轮训的方式,他是怎么轮训的呢?
可以继续追踪代码,调用的父类的方法...我们大概了解到这就可以了,以为我们一般也不需要去改变这个获取服务的方式.