前言

Github:https://github.com/HealerJean

博客:http://blog.healerjean.com

一、常见配置中心

| 配置中心 | 出处 | 地址 | | ————————- | ———————————————————— | ————————————————— | | spring-cloud-config | ` spring 出品,可以和 spring cloud 无缝配合 | https://github.com/spring-cloud/spring-cloud-config | | disconf | java 开发,蚂蚁金服技术专家发起,业界使用广泛 | https://github.com/knightliao/disconf | | apollo | Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,具备规范的权限、流程治理等特性。 | https://github.com/ctripcorp/apollo/ | | Lion | 美团自研,内部使用,功能强大 | | | DUCC` | 京东自研,内部使用,功能强大 | |

二、功能对比

  Ducc **disconf ** **ctrip apollo ** **spring-cloud-config ** nacos
厂商 京东 百度 携程 Spring 阿里巴巴
集群 支持 支持 支持 支持 支持
数据一致性 最终一致 最终一致 最终一致 最终一致 强一致性
配置存储 Mysql Mysql Mysql Git / svn / 本地 MySQL / Embedded DB
客户端通信协议 http Zookeeper http http HTTP / gRPC
客户端更新模式 长轮训拉取&定时拉取 Zookeeper 推送 长轮训&定时拉取 启动时拉取,手动触发 主动推送
客户端更新实时性 准实时 实时 准实时 重启生效,或刷新触动生效 准实时
客户端缓存 支持 支持 支持 不支持 支持支持
客户端容灾策略 本地文件 本地文件 本地文件 重启会受到影响 本地文件
客户端鉴权 application & token 一般 application & token 用户名&密码 支持
客户端读写
客户端spring集成 完善
1、支持 xml 与注解+配置文件两种创建方式
2、可修改 Spring 配置环境,可以支持 Spring 原生的Value注解与 xml 配置符
一般
1、只用 xml 创建配置实例,需要要配置框架本身提供的注解来获取配置
较好
1、支持 xml 与注解+配置文件两种创建方式,但配置的方式并不方便
2、可修改 Spring 配置环境,可以支持 Spring 原生的 Value 注解与 xml 配置符
原生  
客户端注解支持 完善
1、支持 Spring 原生注
2、框架自身注解
3、可以支持自定义注解
一般只支持框架自身注解 较好
1、支持 Spring 原生注解
2、框架自身注解
原生  
客户端代码入侵性 非常弱
1、支持 Spring @Value
2、支持配置文件监听方式修改 bean属性,做到零入侵
强配置必须用框架中的注解方式,强编码到代码中
1、支持 Spring @Value 注解
 
客户端多配置源支持 完善1、静态配置
2、系统配置
3、ucc 动态配置
4、自定义配置(插件式扩展,如:zk扩展、consol 扩展)
较好
1、静态配置
2、远程配置
较好
1、静态配置
2、远程配置
较好
1、本地properties文件
2、远程配置
 
客户端数据绑定 完善
1、基础类型+数组+集合+Date + Enum + File + json + xml
2、插件式扩展,可支持所有数据格式
一般只支持基础类型 一般基础类型 + json 较好 Spirng原生环境支持  
开放 API 完善 一般 一般 一般  
管理界面 完善 一般 一般 一般  
权限管理 完善空间和配置对应用授权,可继承 一般 较完善空间对应用授权 基于git管理  
版本管理 支持历史版本回滚 不是很完善 支持历史版本回滚 基于git管理  
安全发布 工作区方式编辑,一键发布,统一下发生效 配置项或配置文件单个发布 一键发布,统一下发生效 手动refresh  
灰度发布 不支持部分更新 不支持部分更新 支持 不支持  
预案切换 支持配置预案切换  
多环境 完善,支持合并 较完善,不支持合并 较完善,不支持合并 不支持  
部署依赖组件 Zookeeper Eureka Eureka MySQL/ Embedded DB

ContactAuthor