配置信息有哪些区分?如何设计一个配置中心?配置中心的设计重点有哪些?

打卡Day24:今天学习了《53|管理设计篇之“配置中心”》,我的收获如下:

配置信息

数据库用户名密码、线程池大小、队列长度、日志级别、算法策略、Jvm内存大小、应用启动参数、操作系统参数。

单体应用使用配置文件,分布式系统引入集中式的配置中心。

区分软件的配置

  • 按静态和动态分;
  • 按运行环境分(开发、测试、预发、生产);
  • 按依赖分(外部依赖配置、内部配置);
  • 按层次分(操作系统、中间件、应用)。

配置中心的模型

  • 配置项是key/value模型;
  • 配置分层,操作系统和平台层value应该是选项,应用配置要有命名规范(命名空间等);
  • 有外部服务依赖的配置,适合放到服务发现系统;
  • 版本管理,每次变动都记录差异;配置模板和工具;
  • 提供API(服务名、版本号、配置环境)。

配置中心的架构

配置录入 => 配置中心 <=> 配置变更控制器 => 配置变更。

配置中心的设计重点

  • 如何统一和标准化配置项;
  • 配置更新是一个事务,失败时需要回滚;
  • 配置更新控制器需要应用配合。

左耳朵耗子带你重学《左耳听风》

https://time.geekbang.org/column/article/5819