开源配置管理中心 阿波罗(apollo)
github地址
apollo github地址
gitee 不定时更新镜像地址
快速入口
演示环境(Demo):
106.54.227.205
账号/密码:apollo/admin
在 2018 年度最受欢迎开源软件评选中,携程开源配置中心 Apollo 名列 Top20 之内,这一方面说明 Apollo 解决了微服务应用配置复杂的一大痛点,同时也说明社区对微服务需要集中配置的普遍认同。Apollo 配置中心架构相对复杂,但理解其架构对正确部署和使用 Apollo 非常重要,Apollo 本身采用微服务架构,使用了服务发现和软负载等分布式技术,它的核心组件和服务发现机制如下:
Client&ConfigService:Apollo 客户端 Client 通过 ConfigService 感知并获取实时配置。两者的发现机制是,ConfigService 启动时首先注册到 Eureka,Client 再通过 MetaServer(相当于 Eureka Proxy) 获取 ConfigService 的地址列表,并通过客户端软负载的方式连接 ConfigService。这个连接采用 long pulling 方式,支持 ConfigService 实时推送数据到 Client,且 Client 会定期重连获取配置,实现推拉结合效果。
Portal&AdminService:Portal 是给用户使用的配置管理 (添加、修改和发布等) 界面,AdminService 是实际操作配置的接口服务。两者的服务发现机制是,AdminService 启动时首先注册到 Eureka,Portal 再通过 MetaServer(Eureka Proxy)获取 AdminService 的地址列表,并通过客户端软负载的方式调用 AdminService。
Eureka&MetaServer:Apollo 采用 Eureka 做服务发现。在服务提供端,ConfigService 和 AdminService 启动时会自动注册到 Eureka。服务消费端比较复杂,首先,Apollo 引入 MetaServer 以屏蔽 Eureka 服务发现接口的复杂性,简化多语言客户端接入,MetaServer 相当于是 Eureka Proxy;其次,MetaServer 无状态以集群方式部署,需要前置 Nginx 做负载均衡;最后,Client 和 Portal 通过 Nginx->MetaServer->Eureka 方式间接发现目标服务。
关于微服务配置中心 Apollo 架构,资深架构师杨波在极客时间「微服务架构实战 160 讲」中进行了详细的讲解,戳下面可试看。