apollo-config读取-源码游记
问题由来
-
apollo架构图
![]()
-
使用时加入的配置
![]()
-
问题
上图中的x.x.x.x:8080 访问后其实是内置eureka。 比较好奇配置信息是从哪里取得的
![]()
游历结果
- 默认5分钟获取请求一次接口(实际接口是在这个端口后边拼uri)获取配置信息。获取时使用fixedrated线程池,单线程访问。每次的配置信息都会放入缓存,当新获取的配置信息和缓存中不一致时, 就会记录一个变更事件。 而这个变更事件采用的是类似观察者模式的方式, 使用反射调用目标类的方法, 进行处理。有兴趣建议读一读logevent这一部分。
- 核心类com.ctrip.framework.apollo.internals.RemoteConfigRepository
-
固定时间间隔去拉取, 重点是trysync
![]()
-
sync
![]()
-
获取到的配置信息, 上边是uri
![]()
-
线程池时间配置
![]()
-








浙公网安备 33010602011771号