转载

超详细的微服务分布式架构统一配置中心选型对比

概述

由于目前新项目基本是微服务架构,大概有几十个项目,都是基于LCP平台研发的,而每次平台上修改配置,各个项目也都需要去修改配置,然后还要重启,况且是三套环境,维护起来特别麻烦,所以准备做一个统一的配置中心,以下是技术选型的对比。

一、开源配置中心

经过一段时间的整理,大概有以下几个开源配置中心:

1、Apollo

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。

Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。

.Net客户端不依赖任何框架,能够运行于所有.Net运行时环境。

2、Diamond(不在维护,这里就不作介绍了)

Diamond是淘宝研发的分布式配置管理系统。使用Diamond可以让集群中的服务进程动态感知数据的变化,无需重启服务就可以实现配置数据的更新。

项目地址:https://github.com/gzllol/diamond

3、Disconf

专注于各种「分布式系统配置管理」的「通用组件」和「通用平台」, 提供统一的「配置管理服务」

项目地址:https://github.com/knightliao/disconf

4、spring-cloud/spring-cloud-config

项目地址:https://github.com/spring-cloud/spring-cloud-config

spring出品,可以和spring cloud无缝配合

二、配置中心对比

1、功能特性

先从功能层面来对比

2、技术路线兼容性

引入配置中心,需要考虑和现有项目的兼容性,以及是否引入额外的第三方组件。

3、可用性与易用性

引入配置中心后,所有的应用都需要依赖配置中心,因此可用性需要重点关注。

综合对比,觉得携程的Apollo 功能强大完善,github上开源社区比较活跃,代码一直在维护,而且文档写得清楚,故最终选择Apollo 作为我们的分布式配置中心。

原文  http://news.51cto.com/art/201910/604802.htm
正文到此结束
Loading...