携程配置中心地址:GitCode - 全球开发者的开源社区,开源代码托管平台
1.1 Apollo配置中心介绍
Apollo(阿波罗)是开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。
主要特性:
Apollo |
|
功能特性 |
|
静态配置管理 |
支持 |
动态配置管理 |
支持 |
统一管理 |
支持 |
多维度管理 |
支持(应用、环境、集群、命名空间) |
本地配置缓存 |
支持 |
配置生效时间 |
实时 |
配置更新推送 |
支持 |
配置定时拉去 |
支持 |
用户权限管理 |
支持 |
授权、审核、审计 |
支持 |
配置版本管理 |
支持 |
配置合规检测 |
支持 |
实例配置监控 |
支持 |
灰度发布 |
支持 |
告警通知 |
支持,邮件方式告警 |
OpenAPI |
支持 |
技术路线 |
|
支持SpringBoot |
支持 |
支持SpringCloud |
支持 |
客户端支持 |
Java、.Net |
业务系统侵入性 |
侵入性弱 |
依赖组件 |
Eureka |
可用性 |
|
单点故障(SPOF) |
支持HA部署 |
多数据中心部署 |
支持 |
配置获取性能 |
官方说比spring快 |
易用性 |
|
配置界面 |
统一界面(一个界面多个服务) |
社区活跃度 |
非常高 |
1.1.1 核心概念
1.1.1.1 application (应用)
实际使用配置的应用,需要有唯一的身份标识 -- appId
从而可以去获取对应的配置。
1.1.1.2 environment环境
配置对应的环境,Apollo客户端在运行时需要知道当前应用处于哪个环境,从而可以去获取应用的配置
我们认为环境和代码无关,同一份代码部署在不同的环境就应该能够获取到不同环境的配置
1.1.1.3 cluster (集群)
一个应用下不同实例的分组,比如典型的可以按照数据中心分,把上海机房的应用实例分为一个集群,把北京机房的应用实例分为另一个集群。
对不同的cluster