nacos config client 源码
2022-10-30 17:42:00 7 举报
Nacos Config Client是一个用于访问和管理Nacos配置中心的客户端库。它提供了丰富的API,使得开发者可以轻松地在应用程序中获取、监听和更新配置信息。源码主要包括以下几个部分: 1. 客户端连接管理:负责与Nacos服务器建立和维护长连接,确保客户端能够实时获取配置变更。 2. 配置监听:支持基于命名空间、分组和数据ID的配置监听,当配置发生变化时,客户端能够及时收到通知并进行处理。 3. 配置读取:提供同步和异步两种方式获取配置信息,方便开发者根据实际需求选择合适的方式。 4. 配置更新:支持对配置信息的批量更新和原子性操作,确保配置变更的一致性和可靠性。
作者其他创作
大纲/内容
向线程池加入当前任务无限轮询
RefreshEventListener会刷新spring容器,并加载配置详情看spring-cloud-context
NacosConfigBootstrapConfiguration
如果发送变更
NacosConfigService#addListener
10ms执行一次
ClientWorker#ClientWorker初始化工作线程池
loadNacosPropertySource
长轮询超时30s重试2s
会调用5次共享配置扩展配置${spring.application.name}${spring.application.name}.文件类型${spring.application.name}-profile.文件类型后面的覆盖前面的
NacosContextRefresher#registerNacosListenersForApplications系统启动后注入监听器
NacosContextRefresher#registerNacosListener
loadExtConfiguration加载扩展配置
locate加载配置文件
loadNacosData
checkUpdateDataIds获取变更的数据key
NacosConfigService#NacosConfigService实例化
ServerHttpAgent#ServerHttpAgent(java.util.Properties)
NacosPropertySourceBuilder#build
loadApplicationConfiguration加载应用配置
注入
向轮询线程池中添加LongPollingRunnable执行轮询任务
checkUpdateConfigStr
NacosDataParserHandler#parseNacosData解析配置信息
ClientWorker#init设置超时时间
getServerConfig对每一个配置获取详细配置信息
@RefreshScope有这个注解的bean会被销毁在初始化
在spring-cloud-context调用在spring容器刷新前调用设置环境变量
NacosConfigManager
NacosContextRefresher
CacheData#checkListenerMd5校验md5是否变更
NacosConfigAutoConfigurationnacos自动化配置
添加轮询header信息设置超时时间为1.5倍防止超时
ConfigService#getConfig请求服务器获取配置
遍历
创建监听器,实现AbstractSharedListener当配置发生变更的时候会发送RefreshEvent事件
SecurityProxy#login五分钟登录一次,并保持登录信息
3000个监听器一个任务
loadNacosDataIfPresent加载服务器配置
checkConfigInfo
默认不刷新,如需刷新需要配置
loadSharedConfiguration加载共享配置
safeNotifyListener调用监听器AbstractSharedListener
NacosPropertySourceLocator
0 条评论
下一页