传统的键配置信息写到文件的方式(xml, json) 是行不通的,因为当处理基于云的应用程序可能包含数百个微服务, 而且每个微服务可能有多个运行时服务实例. 这样就使得配置管理成了一个问题, 因为云环境中的应用程序和运维团队必须全力应付配置文件到哪去.
配置管理
隔离: 我们希望将服务配置信息与服务的实际物理部署完全分离, 应用程序配置不一样部署到服务实例中,相反, 在服务启动时,配置信息应该作为环境变量传递到正在启动的服务或中央仓库中读取.
抽象: 抽象服务接口背后的配置数据的访问。通过 REST 的 JSON 服务检索配置数据.
集中: 基于云的应用可能有数百个服务,将应用程序配置集中到尽可能少的存储库中.
稳定: 因为你的应用程序的配置信息与你部署的服务完全隔离和中心化, 无论你使用何种解决方案,都可以实现高可用和冗余。
应用程序配置数据需要跟踪和版本控制, 因为管理不善的应用配置是不易察觉的错误和意外中断的一个肥沃滋生地.
这里的 Configuration management service , 个人理解, 它本身也是一个微服务, 提供的也是 http restful API 接口, 而不是文件(xml, json)
有很多类似的产品, Etcd, Eureka, Consul, Spring Cloud configuration server, 我们使用的是 Eureka.