初识Apollo配置中心

  • 1 Apollo简单介绍
  • 2 基础模型与原理
  • 3 架构模块
  • 4 客户端实现过程


1 Apollo简单介绍

Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。

2 基础模型与原理

Apollo 软件架构 apollo management_客户端


1、用户在配置中心对配置进行修改并发布

2、配置中心通知Apollo客户端有配置更新

3、Apollo客户端从配置中心拉取最新的配置、更新本地配 置并通知到应用

3 架构模块

Apollo 软件架构 apollo management_IP_02

Apollo 架构图 by 宋顺

Config Service

  • 提供配置获取接口
  • 提供配置更新推送接口(基于Http long polling)
  • 接口服务对象为Apollo客户端

Admin Service

  • 提供配置管理接口
  • 提供配置修改、发布等接口
  • 接口服务对象为Portal

Portal

  • 提供Web界面供用户管理配置
  • 通过Meta Server获取Admin Service服务列表(IP+Port),通过IP+Port访问服务
  • 在Portal侧做load balance、错误重试

Client

  • Apollo提供的客户端程序,为应用提供配置获取、实时更新等功能
  • 通过Meta Server获取Config Service服务列表(IP+Port),通过IP+Port访问服务
  • 在Client侧做load balance、错误重试

Meta Server

  • Portal通过域名访问Meta Server获取Admin Service服务列表(IP+Port)
  • Client通过域名访问Meta Server获取Config Service服务列表(IP+Port)
  • Meta Server从Eureka获取Config Service和Admin Service的服务信息,相当于是一个Eureka Client

Eureka

  • 基于Eureka和Spring Cloud Netflix提供服务注册和发现
  • Config Service和Admin Service会向Eureka注册服务,并保持心跳

4 客户端实现过程

  • 客户端和服务端保持了一个长连接,从而能第一时间获得配置更新的推送。(通过Http Long Polling实现)
  • 客户端还会定时从Apollo配置中心服务端拉取应用的最新配置。
  • 客户端从Apollo配置中心服务端获取到应用的最新配置后,会保存在内存中。
  • 客户端会把从服务端获取到的配置在本地文件系统缓存一份。在遇到服务不可用,或网络不通的时候,依然能从本地恢复配置。
  • 应用程序可以从Apollo客户端获取最新的配置、订阅配置更新通知。

资料参考
[1]: https://github.com/ctripcorp/apollo/wiki/Apollo配置中心设计