Spring Cloud 2.2.2 源码之四十七nacos客户端触发服务刷新原理一
服务获取和刷新的流程图

什么时候获取服务
其实当nacos客户端起来之后,并不会去请求服务信息,只是会去做服务注册,配置获取等,那什么时候会获取服务呢,就是第一次请求来的时候,也就是说是懒加载的思想,下面看我慢慢分析。
拦截器拦截RestTemplate
这个就不多说了,以前分析ribbon的时候有讲过,可以看这篇文章
,我就大致的走个流程。
首先是拦截:

获取负载均衡器:

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

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

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

然后刷新上下文,RibbonClientConfiguration的name被注入为服务名:

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

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


赋值给clientName,后面会用到:

后面就跟我们NacosRibbonClientConfiguration里的注入了,下篇说。
好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵。
本文深入解析 Nacos 客户端在 Spring Cloud 2.2.2 版本中服务获取与刷新的具体流程。阐述了 Nacos 客户端采用懒加载策略,在首次请求时触发服务信息获取的过程,以及如何通过拦截 RestTemplate 实现服务的动态刷新。
6731

被折叠的 条评论
为什么被折叠?



