创建负载均衡客户端
最后一步了,创建客户端,然后负载均衡,去执行。
先创建服务的客户端:
CachingSpringLoadBalancerFactory
工厂有个缓存,先从缓存中拿。没有的话就用SpringClientFactory
创建一个ILoadBalancer
实例,其实就从服务名对应的容器里获取,这里其实就是获取ribbon
的负载均衡器ZoneAwareLoadBalancer
,如果没有重试工厂的话就封装成FeignLoadBalancer
对象,放入缓存,并返回:
这个熟悉:
executeWithLoadBalancer执行
创建一个命令,然后执行,里面也很深,貌似是响应式编程的RXJava
的东西,基本都是异步。
不过最后会执行到这里,用负载均衡策略选服务器:
这里熟悉了吧。
最后会回调这里面:
FeignLoadBalancer的execute
其实就是FeignLoadBalancer
的execute
:
最终居然是用HttpURLConnection
来进行请求的。
好了,基本的流程说完了,其实就是动态代理,最后是HttpURLConnection
处理的,细节可以慢慢看哦。
好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵。