Config-toolkit
Config Toolkit是当当网基于Apache-2.0的开源项目,提供了一层对配置资源的抽象,配置可以从多种介质加载,工具内部提供了对zookeeper/本地文件/远程http文件的支持,并提供了SPI接口支持用户扩展自定义介质。
特点
- 集中管理集群配置
- 支持配置热更新
- 多配置源支持,内置支持zookeeper、本地文件、http协议
- 具备配置管理web界面
缺点
- 第三方开源服务,不好维护
Spring Cloud Config
spring-cloud-config是基于Spring-Boot原生配置注入实现原理的基础上,拓展的轻量级配置中心,项目体积小,设计理念为服务中小型项目,快速构建远程配置中心及配置实时刷新,本身提供了基于Gitee代码仓库的远程配置读取能力,开发者只需要简单配置资源文件路径和授权访问Token即可实现配置中心的功能。
特点
- 轻量
- 易集成
- 实时刷新
- 集中化配置管理
- 天然支持配置的版本管理
- 加密和解密属性值
缺点
需要依赖spring-cloud-config-server和spring-boot-starter-actuator,而且actuator设计的初衷是应用的健康监控,引入依赖后会增加很多用不上的功能,增加应用打包或者镜像体积;官方推荐的存储介质是git,不能局部化操作,每次操作都得整个文件变动,粒度太大了,虽然spring-cloud-config支持数据库,可是需要改写,成本有点高;刷新机制依赖于消息总线、消息队列,存在延迟的情况,依赖消息可用性,系统复杂度大大提高。
DUC
公司分布式统一配置组件,提供统一的配置管理服务; 部署简单:同一个上线包,无须改动配置,即可在 多个环境中上线; 统一管理:提供web平台,统一管理多个环境、多个产品,多个版本的所有配置; 支持微服务架构。
特点
- 集中管理集群配置
- 具备配置管理web界面
- 公司自研组件,维护方便
缺点
- 强依赖zookeeper和数据库,不够轻量