概述由于目前新建的项目基本都是微服务架构,大概有几十个项目,都是基于LCP平台开发的,每次都在上面修改配置platform,每个项目也需要修改配置,然后重启。而且环境一共有三套,维护起来很麻烦,所以我们打算搭建一个统一的配置中心。下面是技术选型的对比。一、开源的配置中心经过一段时间的整理,开源的配置中心大概有以下几种:1、Apollo阿波罗(Apollo)是携程框架部开发的分布式配置中心,可以集中管理配置不同环境、不同集群,修改配置后,可以实时推送到应用端,具有标准化权限和流程治理的特点,适用于微服务配置管理场景。服务器基于SpringBoot和SpringCloud开发,打包后直接运行,无需额外安装Tomcat等应用容器。Java客户端不依赖任何框架,可以运行在所有的Java运行环境中,对Spring/SpringBoot环境也有很好的支持。.Net客户端不依赖于任何框架,可以运行在所有.Net运行环境中。2、Diamond(未维护,这里不做介绍)Diamond是淘宝开发的分布式配置管理系统。使用Diamond可以让集群中的服务进程动态感知数据变化,无需重启服务即可更新配置数据。项目地址:https://github.com/gzllol/diamond3,Disconf专注于各种“分布式系统配置管理”的“通用组件”和“通用平台”,提供统一的“配置管理服务”项目地址:https://github.com/knightliao/disconf4,spring-cloud/spring-cloud-config项目地址:https://github.com/spring-cloud/spring-cloud-configspring出品,可与springcloud无缝对接一、配置中心对比1.功能特点先从功能层面进行对比。2、技术路线兼容性引入配置中心,需要考虑与现有项目的兼容性,是否引入额外的第三方组件。3、易用性和易用性引入配置中心后,所有的应用都需要依赖配置中心,所以需要关注易用性。综合对比后,感觉携程的Apollo功能强大,功能齐全。github上的开源社区比较活跃,代码一直在维护,文档也写的很清楚,所以我们最终选择了Apollo作为我们的分布式配置中心。
