服务获取和刷新的流程图
什么时候获取服务
其实当nacos
客户端起来之后,并不会去请求服务信息,只是会去做服务注册,配置获取等,那什么时候会获取服务呢,就是第一次请求来的时候,也就是说是懒加载的思想,下面看我慢慢分析。
拦截器拦截RestTemplate
这个就不多说了,以前分析ribbon
的时候有讲过,可以看这篇文章
,我就大致的走个流程。
首先是拦截:
获取负载均衡器:
创建服务对应的上下文,这里会传入服务名:
向ribbon
的属性源里添加一条值为服务名的属性,key为ribbon.client.name
,名字为服务名:
就是这样,属性源属性后面有用到。
然后刷新上下文,RibbonClientConfiguration
的name
被注入为服务名:
因为ribbon.client.name
就是刷新环境前放进属性源里的:
接着实例化DefaultClientConfigImpl的时候会将服务名放进去:
赋值给clientName
,后面会用到:
后面就跟我们NacosRibbonClientConfiguration
里的注入了,下篇说。
好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵。