参考链接:

概念

Apollo是一个分布式配置管理中心,来自携程框架研发部。可以跨越不同环境、不同集群进行配置管理。服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。通过这类专门管理配置的技术,可以清楚管理不同环境的配置,此外还有实时生效等功能特点。

特点

  • 实时生效(热发布),配置修改后可以实时推送到应用端
  • 灰度发布
  • 版本发布管理
  • 权限、审计、审核
  • 部署简单等

四维度管理

应用 application

指定具体的应用(app.id标识)来进行相应的配置

环境 environment

可以指定不同环境的配置,默认提供功能测试环境fat,集成测试环境uat,开发环境dev,生产环境pro

集群 cluster

对于不同集群分类的维度配置,如不同地区中心的集群,配置不同的数据库地址

命名空间 namespace

一个应用中不同配置的分组。分为两种权限:

  • 公共的:能被所有应用获取
  • 私有的:只能被所属的应用获取到。一个应用尝试获取其它应用 private 的 Namespace,Apollo 会报 “404” 异常。

本地缓存

本地会缓存一份apollo配置文件,当网络不通等情况得以支持正常使用。Linux会默认缓存在/opt/data/{appId}/config-cache

架构设计