Apollo
爱学习爱聊天
有计划的去写
展开
-
Apollo配置中心源码解析
1、Apollo配置中心总体设计一、主流程-流程图简要流程说明,后面源码分析备注:一个 Namespace 对应一个 RemoteConfigRepository 。多个RemoteConfigRepository ,注册到全局唯一的 RemoteConfigLongPollService 中Client初始化后没5分钟定时向Config-Service同步配置; 同时向R...原创 2019-10-17 11:05:51 · 801 阅读 · 2 评论 -
ReleaseMessageScanner:扫描变更配置,触发监听者们
6、ReleaseMessageScanner:扫描变更配置,触发监听者们这一步就是将第5步插入数据库的变更配置,每秒扫描一次,扫出来之后发送给监听者(还记得NotificationControllerV2 implements ReleaseMessageListener)public class ReleaseMessageScanner implements Initializi...原创 2019-10-17 11:00:07 · 531 阅读 · 0 评论 -
DatabaseMessageSender:变更配置入库,清理
5、DatabaseMessageSender:变更配置入库,清理这一步就比较简单了,,总体就是AdminService发送变更直接入库(这里基于数据库简单实现了一个消息队列),等待下一步扫描,之后清除一下老消息,直接看注释吧/** * AdminServer在发布配置后会往ReleaseMessage表中插入一条数据 * @param message appId+Cluster...原创 2019-10-17 10:58:24 · 322 阅读 · 0 评论 -
NotificationControllerV2:notifications/v2:实现长轮循,监听配置变更、返回,结束长轮循
4、NotificationControllerV2:notifications/v2:实现长轮循,监听配置变更、返回,结束长轮循NotificationControllerV2实现了ReleaseMessageListener,具体什么时候注册的监听器请参考:ConfigServiceAutoConfiguration /** * 监听器注册,namespaces变更后接收消息...原创 2019-10-17 10:57:37 · 1822 阅读 · 0 评论 -
RemoteConfigLongPollService:远程配置长轮循服务,负责长轮循ConfigServer变更通知,当有更新时立即轮循触发更新
3、RemoteConfigLongPollService:远程配置长轮循服务,负责长轮循ConfigServer变更通知,当有更新时立即轮循触发更新第一步RemetoConfigRepository构造中scheduleLongPollingRefresh()方法进入该类private void scheduleLongPollingRefresh() { remoteConf...原创 2019-10-17 10:56:18 · 2776 阅读 · 0 评论 -
ConfigController:configs/{appId}/{clusterName}/{namespace}:提供配置读取功能
ConfigController:configs/{appId}/{clusterName}/{namespace}:提供配置读取功能@GetMapping(value = "/{appId}/{clusterName}/{namespace:.+}") public ApolloConfig queryConfig(@PathVariable String appId, @PathVa...原创 2019-10-17 10:54:46 · 1041 阅读 · 0 评论 -
RemoteConfigRepository远程Repository,实现从ConfigService拉取配置,并缓存,支持实时,定时
RemoteConfigRepository:远程Repository,实现从ConfigService拉取配置,并缓存,支持实时,定时 public RemoteConfigRepository(String namespace) { m_namespace = namespace; m_configCache = new AtomicReference<>(...原创 2019-10-17 10:53:12 · 1667 阅读 · 0 评论 -
Apollo配置中心总体设计
Apollo配置中心源码解析一、总体设计基础模型模型介绍 用户在配置中心对配置进行修改并发布 Apollo配置中心通知Apollo客户端有配置更新 Apollo客户端拉取Apollo配置中心最新配置,更新本地并通知到应用 架构模块介绍:Config-Service提供配置的读取、推送功能,服务对象客户端(Client) Admin-Service...原创 2019-10-16 17:12:24 · 378 阅读 · 0 评论