apollo-config读取-源码游记

问题由来

  • apollo架构图

  • 使用时加入的配置

  • 问题
    上图中的x.x.x.x:8080 访问后其实是内置eureka。 比较好奇配置信息是从哪里取得的

游历结果

  • 默认5分钟获取请求一次接口(实际接口是在这个端口后边拼uri)获取配置信息。获取时使用fixedrated线程池,单线程访问。每次的配置信息都会放入缓存,当新获取的配置信息和缓存中不一致时, 就会记录一个变更事件。 而这个变更事件采用的是类似观察者模式的方式, 使用反射调用目标类的方法, 进行处理。有兴趣建议读一读logevent这一部分。
  • 核心类com.ctrip.framework.apollo.internals.RemoteConfigRepository
    • 固定时间间隔去拉取, 重点是trysync

    • sync

    • 获取到的配置信息, 上边是uri

    • 线程池时间配置

posted @ 2021-06-17 14:20  rudolf_lin  阅读(245)  评论(0)    收藏  举报