Apollo简介:
- Apollo由携程团队,基于SpringBoot,SpringCloud研发。
- 集中化管理应用不同环境、不同集群的配置。
- 实时推送,适用于微服务配置管理场景。
- 地址:https://github.com/ctripcorp/apollo
- 快速开始 : https://github.com/ctripcorp/apollo/wiki/Quick-Start
Apollo功能特性:
- 统一:作为微服务统一的配置中心
- 高效:精细化分工(开发运维分管)、高效(配置信息集管理)、快速上线(不同环境使用)、实时生效
- 安全:防止代码泄露配置也泄露、环境隔离+权限验证、灰度发布、配置信息版本控制
Apollo基本概念:
- 项目:即应用。
- 环境:应用下有不同的环境列表(DEV/TEST/PREVIEW)。同一个应用不同的环境可以有不同的配置。
- 集群:环境之下可以划分不同的集群,一般用于标识不同机房,默认使用default,无需创建。创建集群的时候可以指定一个或多个环境。
- 命名空间:支持多种类型的配置文件(properties/json/yaml/xml/txt)
Apollo原理:
- 客户端和服务端之间通过保持一个长连接,保障第一时间获得配置更新的推送;
- 客户端还会定期从Apollo服务端拉取应用的最新配置信息;
- 客户端从Apollo服务端获取到应用的最新配置后,会保存在内存中;
- 客户端把从服务端获取到的配置在本地文件系统缓存一份;
- 应用程序从Apollo客户端获取最新的配置、订阅配置更新通知。