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

服务获取和刷新的流程图

202309152317316791.png

什么时候获取服务

其实当nacos客户端起来之后,并不会去请求服务信息,只是会去做服务注册,配置获取等,那什么时候会获取服务呢,就是第一次请求来的时候,也就是说是懒加载的思想,下面看我慢慢分析。

拦截器拦截RestTemplate

这个就不多说了,以前分析ribbon的时候有讲过,可以看这篇文章
,我就大致的走个流程。
首先是拦截:

202309152317326082.png
获取负载均衡器:

202309152317332433.png
创建服务对应的上下文,这里会传入服务名:

202309152317337264.png

ribbon的属性源里添加一条值为服务名的属性,key为ribbon.client.name,名字为服务名:

202309152317343975.png
就是这样,属性源属性后面有用到。

202309152317351206.png
然后刷新上下文,RibbonClientConfigurationname被注入为服务名:

202309152317356327.png
因为ribbon.client.name就是刷新环境前放进属性源里的:

202309152317362948.png
接着实例化DefaultClientConfigImpl的时候会将服务名放进去:

202309152317367539.png

2023091523173734310.png
赋值给clientName,后面会用到:

2023091523173821111.png
后面就跟我们NacosRibbonClientConfiguration里的注入了,下篇说。

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

阅读全文