赞
踩
原标题:Apollo 配置中心:分布式部署
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
服务端架构
上图简要描述了 Apollo 的总体设计:
Config Service 提供配置的读取、推送等功能,服务对象是 Apollo 客户端
Admin Service 提供配置的修改、发布等功能,服务对象是 Apollo Portal(管理界面)
Config Service 和 Admin Service 在生产环境都是多实例、无状态部署,所以需要将自己注册到 Eureka 中并保持心跳
在 Eureka 之上有一层 Meta Server 用于封装 Eureka 的服务发现接口
Client 通过域名访问 Meta Server 获取 Config Service 服务列表(IP+Port),而后直接通过 IP+Port 访问服务,同时在 Client 侧会做 load balance、错误重试
Portal 通过域名访问 Meta Server 获取 Admin Service 服务列表 IP+Port,而后直接通过 IP+Port 访问服务,同时在 Portal 侧会做 load balance、错误重试部署策略
上图描述了 Apollo 的部署策略:
PortalDB 主要保存权限、支持的环境等数据,Apollo Portal 环境只需要部署一套,管理所有环境(DEV、FAT、UAT、PRO)
ConfigDB 保存应用相关的配置数据,每个环境需要独立的 ConfigDB 数据库
为保证稳定性,PortalDB 和 ConfigDB 需要支持 Master-Slave 模式
为简化部署,实际上会把 Config Service、Eureka 和 Meta Server 部署在同一个 JVM 进程中,Admin Service 部署在另一个 JVM 线程中
Meta Server、Eureka 、Config Service 和 Admin Service 在生产环境可部署在两个机房,实现双活客户端架构
上图简要描述了 Apollo 客户端的实现原理:
客户端和服务端保持了一个长连接,从而能第一时间获得配置更新的推送
客户端会定时从 Apollo 配置中心服务端拉取应用的最新配置(防止推送机制失效导致配置不更新)
客户端从 Apollo 配置中心服务端获取到应用的最新配置后,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。