微服务配置中心
“配置中心”是对配置进行集中管理的系统,是微服务架构中的一个基础环节。
服务端存在多种类型的配置:
- 环境变量:如操作系统环境变量
- 内部配量:如阈值、关键字
- 应用配量:如功能、特性开关
环境变量等配置很少发生变动,但内部、应用配置可能会频繁发生变动。
传统的配置都是写在文件中,并伴随服务端一起发布,这样做有一些弊端:
- 配置文件格式多样,易产生错误。例如,yaml和ini的格式就极容易混淆,导致配置出错。
- 不同环境下配置容易混淆。例如,误将测试环境配置发布到生产环境。
- 每次配置的修改都要伴随服务端的上线。在微服务架构下,服务种类、实例数量增多,为了改动配置而单独上线会产生较大的运维成本。
针对这些场景,配置中心应运而生,它的核心功能有:
- 提供配置的存、取服务
- 支持配置的动态更新,即无需启动服务即可完成配置更新。
- 支持配置的版本管理或追溯功能,方便进行审计。
本章将围绕配置中心展开讨论,在第一节讨论了一种基于cfg4j的配置中心方案。第二节讨论了如何在Spring Boot中整合上述配置中心。