程序的发展,需要引入集中配置:随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址。
并且对配置的期望也越来越高,配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制。
随着采用微服务的架构模式,项目之间的相互引用随着服务的不断增多,相互之间的调用复杂度成指数升高,每次投产或者上线新的项目时苦不堪言,因此需要引用配置中心治理。
欢迎关注笔者,优质文章都在这里等你。
开源的配置中心有哪些1.Spring-cloud/spring-cloud-config简介:
相比较同类产品,SpringCloudConfig最大的优势是和Spring无缝集成,支持Spring里面Environment和PropertySource的接口,对于已有的Spring应用程序的迁移成本非常低,在配置获取的接口上是完全一致,结合SpringBoot可使你的项目有更加统一的标准(包括依赖版本和约束规范),避免了应为集成不同开软件源造成的依赖版本冲突。
2.淘宝 diamond简介:
3.蚂蚁disconf
- Diamond是淘宝研发的分布式配置管理系统。使用Diamond可以让集群中的服务进程动态感知数据的变化,无需重启服务就可以实现配置数据的更新。
- 具有简单、可靠、易用等特点
简介:
4.携程 apollo
- java开发,蚂蚁金服技术专家发起,业界使用广泛
- 支持配置(配置项 配置文件)的分布式化管理
- 配置发布统一化
- 配置发布、更新统一化:
- 同一个上线包 无须改动配置 即可在 多个环境中(RD/QA/PRODUCTION) 上线
- 配置存储在云端系统,用户统一管理 多个环境(RD/QA/PRODUCTION)、多个平台 的所有配置
- 配置更新自动化:用户在平台更新配置,使用该配置的系统会自动发现该情况,并应用新配置。特殊地,如果用户为此配置定义了回调函数类,则此函数类会被自动调用。
- 极简的使用方式(注解式编程 或 XML无代码侵入模式):我们追求的是极简的、用户编程体验良好的编程方式。目前支持两种开发模式:基于XML配置或者基于注解,即可完成复杂的配置分布式化。
简介:
5.奇虎qconf
- Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
- 服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。
- Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。
- .Net客户端不依赖任何框架,能够运行于所有.Net运行时环境。
简介:
功能对比
- QConf 是一个分布式配置管理工具。 用来替代传统的配置文件,使得配置信息和程序代码分离,同时配置变化能够实时同步到客户端。
- 而且保证用户高效读取配置,这使的工程师从琐碎的配置修改、代码提交、配置上线流程中解放出来,极大地简化了配置管理工作。
- 一处修改,所有机器实时同步更新
- 高效读取配置
- 安装部署方便,使用简单
- 服务器宕机、网络中断、集群迁移等异常情况对用户透明
- 支持c/c 、shell、php、python、lua、java、go、node 等语言
第三方依赖
可用性对比
总结
各款开源配置中心都有各自的特性,需要大家根据自己项目的实际情况进行技术选型,不过目前看github的star,他们的排序分别为
apollo(13928)
disconf(4748)
qconf(1628)
spring-cloud-config(1291)
diamond(265)
apollo,disconf暂时算是最受欢迎的开源配置中心解决方案,但如果是php项目,则可以重点参考下qconf,也是不错的选择。
您的转发 关注就是对笔者最大的支持,欢迎关注。另外对大厂架构设计,BAT面试题分享, 编程语言理论以及互联网圈里那些趣闻轶事这些感兴趣的欢迎关注笔者,干货文章都在这里等你。
,