07 2018 档案

摘要:源码 Apollo 长轮询的实现,是通过客户端轮询 接口实现的。具体代码在 com.ctrip.framework.apollo.configservice.controller.NotificationControllerV2.java。 这个类也是实现了 ReleaseMessageListen 阅读全文
posted @ 2018-07-31 06:12 莫那-鲁道 阅读(2810) 评论(4) 推荐(1) 编辑
摘要:目录 1. 设计 2. 代码实现 3. 总结 1.设计 Apollo 为了减少依赖,将本来 MQ 的职责转移到了 Mysql 中。具体表现为 Mysql 中的 ReleaseMessage 表。 具体官方文档可见: "发送ReleaseMessage的实现方式" 用张图简单的来表示一下 : 有人肯定 阅读全文
posted @ 2018-07-30 06:15 莫那-鲁道 阅读(1396) 评论(0) 推荐(0) 编辑
摘要:大纲 看本文之前,建议看看 apollo 的官方文档,特别是数据库设计文档。 1. 主流程分析 2.1 聊聊细节 2.2 loadConfig() 加载配置 2.3 auditReleases() 方法记录此次访问详情 1. 主流程分析 具体代码在 方法中。 代码如下: 代码有点长,具体细节等下慢慢 阅读全文
posted @ 2018-07-26 07:12 莫那-鲁道 阅读(7477) 评论(0) 推荐(0) 编辑
摘要:目录: 0. 前言 1. 处理方案 2. 简单例子 前言 有的时候,你可能需要在 Spring 环境中放入一些配置,但这些配置无法写死在配置文件中,只能运行时放入。那么,这个时候该怎么办呢? Apollo 就是搞配置的,那么自然会遇到这个问题,他是如何处理的呢? 处理方案 首先要知道 Spring 阅读全文
posted @ 2018-07-09 23:52 莫那-鲁道 阅读(1384) 评论(0) 推荐(0) 编辑
摘要:前言 之前聊了客户端的一些功能,例如融入 Spring, @value 注解的自动刷新实现,长轮询等,这次从客户端的整体设计来聊聊。 设计 上图是 client 项目的包结构。 其中,核心包就是 internals 包,包含了客户端的主要功能逻辑。主要有以下功能: 0. 获取 ConfigServi 阅读全文
posted @ 2018-07-03 22:55 莫那-鲁道 阅读(1207) 评论(1) 推荐(0) 编辑
摘要:前言 如上图所示,Apollo portal 更新配置后,进行轮询的客户端获取更新通知,然后再调用接口获取最新配置。不仅仅只有轮询,还有定时更新(默认 5 分钟一次)。目的就是让客户端能够稳定的获取到最新的配置。 一起来看看他的设计。 核心代码 具体的类是 ,每一个 Config —— 也就是 na 阅读全文
posted @ 2018-07-02 21:47 莫那-鲁道 阅读(4510) 评论(0) 推荐(4) 编辑

点击右上角即可分享
微信分享提示