2023-09-15
原文作者:王伟王胖胖 原文地址: https://blog.csdn.net/wangwei19871103/article/details/105660386

创建负载均衡客户端

最后一步了,创建客户端,然后负载均衡,去执行。

202309152314157851.png
先创建服务的客户端:

202309152314163662.png
CachingSpringLoadBalancerFactory工厂有个缓存,先从缓存中拿。没有的话就用SpringClientFactory创建一个ILoadBalancer实例,其实就从服务名对应的容器里获取,这里其实就是获取ribbon的负载均衡器ZoneAwareLoadBalancer,如果没有重试工厂的话就封装成FeignLoadBalancer对象,放入缓存,并返回:

202309152314171233.png
这个熟悉:

202309152314178784.png

executeWithLoadBalancer执行

创建一个命令,然后执行,里面也很深,貌似是响应式编程的RXJava的东西,基本都是异步。

202309152314186265.png

不过最后会执行到这里,用负载均衡策略选服务器:

202309152314194026.png
这里熟悉了吧。

202309152314200957.png
最后会回调这里面:

202309152314207038.png

FeignLoadBalancer的execute

其实就是FeignLoadBalancerexecute

202309152314215229.png
最终居然是用HttpURLConnection来进行请求的。

2023091523142224910.png
好了,基本的流程说完了,其实就是动态代理,最后是HttpURLConnection处理的,细节可以慢慢看哦。

好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵。

阅读全文