Apollo 配置中心
基本概念
- 为什么要有配置中心:
- 问题:服务修改配置,可能需要重新发布;一个服务有多台机器,修改配置可能需要每一台进行修改。
- 因此需要一个配置管理中心,能动态修改配置、通知配置的应用端。
- Apollo是什么:携程开源的配置管理中心。Apollo能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
- Apollo 功能:
- 配置修改实时生效(热发布):在Apollo修改配置并发布后,客户端能实时接收最新的配置。
- 服务端和客户端之间维护一个长连接。
- 服务端配置修改后会立即通知客户端。
- 客户端相隔一定时间会主动去拉取服务端配置。
- 版本发布管理:配置也具有版本的概念,因此方便地支持配置回滚。
- 灰度发布:指配置发布后,先仅对部分应用实例生效,在观察这部分机器的情况后,若无问题,再推到所有的应用实例。
- 客户端配置监控。
- 权限管理、发布审核、操作审计。
- 配置修改实时生效(热发布):在Apollo修改配置并发布后,客户端能实时接收最新的配置。
- Apollo 更新配置原理。
- 服务端和客户端之间维护一个长连接,从而能第一时间获得配置更新的推送。
- 服务端配置修改后会立即通知客户端。
- 客户端会定时主动去拉取服务端配置。
- 是一个 fallback 机制,防止推送机制失效导致配置不更新。
- 客户端获取到应用最新配置后,缓存一份在本地文件系统中。
- 遇到服务不可用、网络不通时仍能从本地恢复。
- 应用程序从Apollo客户端获取最新的配置、订阅配置更新通知。
- namespace:
- Namespace 是配置项的集合,类似于一个配置文件。