微服务配置中心

“配置中心”是对配置进行集中管理的系统,是微服务架构中的一个基础环节。

服务端存在多种类型的配置:

  • 环境变量:如操作系统环境变量
  • 内部配量:如阈值、关键字
  • 应用配量:如功能、特性开关

环境变量等配置很少发生变动,但内部、应用配置可能会频繁发生变动。

传统的配置都是写在文件中,并伴随服务端一起发布,这样做有一些弊端:

  • 配置文件格式多样,易产生错误。例如,yaml和ini的格式就极容易混淆,导致配置出错。
  • 不同环境下配置容易混淆。例如,误将测试环境配置发布到生产环境。
  • 每次配置的修改都要伴随服务端的上线。在微服务架构下,服务种类、实例数量增多,为了改动配置而单独上线会产生较大的运维成本。

针对这些场景,配置中心应运而生,它的核心功能有:

  • 提供配置的存、取服务
  • 支持配置的动态更新,即无需启动服务即可完成配置更新。
  • 支持配置的版本管理或追溯功能,方便进行审计。

本章将围绕配置中心展开讨论,在第一节讨论了一种基于cfg4j的配置中心方案。第二节讨论了如何在Spring Boot中整合上述配置中心。