常见配置中心比较,Spring Cloud Config VS Nacos VS Apollo

1. 介绍

1.1 配置中心

当超过了一定量级的服务之后,系统配置的修改和发布就会成为项目发展一个不得不关注的难点,因此就诞生了配置中心。配置中心通过集中管理服务配置,提供统一的配置拉取接口来解决因规模不断扩展导致的配置管理问题。一般提供版本管理,权限控制,灰度发布,动态刷新等功能特性来完善配置管理体系。

1.1.1 Spring Cloud Config

Spring Cloud Config是官方提供的分布式系统的外部配置中心提供服务器和客户端支持。

1.1.2 Nacos

Nacos 阿里开源的框架,致力发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

1.1.3 Apollo

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

2. 各相关管理功能特性比较

2.1 版本管理&回滚

Spring Cloud Config:依靠第三方提供,例如如果是本地文件那就没有版本的管理和回滚

Nacos:提供版本回滚

历史版本回滚选择第一个版本时候会删除配置 · Issue #4064 · alibaba/nacos · GitHub

Apollo:properties提供跨版本的回滚,其他格式的配置文件只能回滚上一个版本

不支持回滚到任意版本 · Issue #1642 · apolloconfig/apollo · GitHub

2.2 配置实时推送(动态刷新)

Spring Cloud Config:自身不提供,可以引入外部框架实现

Nacos:支持

Apollo:支持

2.3 敏感加密

Spring Cloud Config:唯一内置敏感加密功能的配置中心

Nacos:需要引入Jasypt,动态刷新无法同步解密

Apollo:需要引入Jasypt,1.16版之后有兼容问题

2.4 多环境划分

Spring Cloud Config:能做到profile级别的划分

Nacos:支持

Nacos提供了3个维度Namespace,Group,data_id的配置划分,不同的Namespace对配置实现了逻辑隔离,group进行第二级别维度的细分,但是nacos却提供了跨group的配置拉取,所以group没有达到隔离的效果,data_id等于Spring Config中的一个配置文件

Apollo:支持

Apollo提供了4个维度APP Environment Cluster,Namespace,APP代表着不同的项目,Environment代表着不同环境他们在彼此维度实现了逻辑隔离,Cluster是Apollo基于同城三机房,异地多活实际的业务需要提供的第三级维度,集群的实例只会使用 当前 集群(当前页面)的配置,只有当对应namespace在当前集群没有发布过配置时,才会使用default集群的配置,namespace等于Spring Config中的一个配置文件

2.5 灰度发布

Spring Cloud Config:自身不提供灰度发布功能,可以引入外部框架实现

Nacos:不支持灰度发布,目前开发方向暂时没有添加意愿

Apollo:支持网络IP级别的灰度发布

2.6 权限管理

Spring Cloud Config:自身不提供权限管理,依据第三方SVN/GIT进行权限管理

Nacos:目前不具备权限管理

Apollo:查看实现环境级别的控制,编辑和发布实现到每个配置级别的控制

2.7 高可用

都支持

3. 总体分析

3.1 原生支持维度表

NacosApolloSpring Cloud Config
灰度发布--
权限管理--
版本管理&回滚-
配置实时推送(动态刷新)-
敏感加密--
多环境
高可用

3.2 总体能力维度表

NacosApolloSpring Cloud Config
灰度发布不支持支持IP级别的灰度发布第三方框架支持
权限管理不支持基本完善第三方平台支持
版本管理&回滚支持之前回滚上一个版本,properties提供跨版本的回滚第三方平台支持
配置实时推送(动态刷新)支持,但是敏感加密后的动态刷新出现无法解密基本完善第三方框架支持
敏感加密引入Jasypt引入Jasypt原生支持
多环境支持支持支持
高可用支持支持支持
社区支持一般活跃一般

4. 关于性能

https://github.com/ctripcorp/apollo/wiki/Apollo性能测试

Nacos服务配置性能测试报告

同等配置下使用SuperBenchmarker测试Apollo拉取配置的性能是约为Spring Cloud Config的10倍

5. 个人对框架选取的看法

Spring Cloud Config作为官方提供的配置中心,适合学习和刚开始使用分布式框架的项目使用

Nacos作为阿里2018年开源的产品,有阿里背书,且服务发现和配置集与一体。但是从目前的发展来看,阿里开发重心在于服务发现端,配置中心相关功能开发相对滞后,适合中小型企业使用

Apollo是携程2016年开源的配置中心,经历了5年的迭代,现在已经是一个很完善的产品,能满足大型互联网的大多数需要

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值