Spring Cloud 2.2.2 源码之二十三Feign执行原理二

创建负载均衡客户端

最后一步了,创建客户端,然后负载均衡,去执行。
Spring Cloud 2.2.2 源码之二十三Feign执行原理二
先创建服务的客户端:
Spring Cloud 2.2.2 源码之二十三Feign执行原理二
CachingSpringLoadBalancerFactory工厂有个缓存,先从缓存中拿。没有的话就用SpringClientFactory创建一个ILoadBalancer实例,其实就从服务名对应的容器里获取,这里其实就是获取ribbon的负载均衡器ZoneAwareLoadBalancer,如果没有重试工厂的话就封装成FeignLoadBalancer对象,放入缓存,并返回:
Spring Cloud 2.2.2 源码之二十三Feign执行原理二
这个熟悉:
Spring Cloud 2.2.2 源码之二十三Feign执行原理二

executeWithLoadBalancer执行

创建一个命令,然后执行,里面也很深。
Spring Cloud 2.2.2 源码之二十三Feign执行原理二

不过最后会执行到这里,用负载均衡策略选服务器:
Spring Cloud 2.2.2 源码之二十三Feign执行原理二
这里熟悉了吧。
Spring Cloud 2.2.2 源码之二十三Feign执行原理二
最后会回调这里面:
Spring Cloud 2.2.2 源码之二十三Feign执行原理二

FeignLoadBalancer的execute

其实就是FeignLoadBalancerexecute
Spring Cloud 2.2.2 源码之二十三Feign执行原理二
最终居然是用HttpURLConnection来进行请求的。
Spring Cloud 2.2.2 源码之二十三Feign执行原理二
好了,基本的流程说完了,其实就是动态代理,最后是HttpURLConnection处理的,细节可以慢慢看哦。

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

相关文章:

  • 2021-11-03
  • 2021-11-20
  • 2021-08-21
  • 2021-10-04
  • 2021-12-28
  • 2021-05-29
  • 2021-08-01
  • 2021-08-19
猜你喜欢
  • 2021-06-12
  • 2021-05-18
  • 2021-10-07
  • 2021-08-14
  • 2021-07-28
  • 2021-10-18
  • 2021-09-24
相关资源
相似解决方案