本文对比分析了几款主流的应用配置类产品。
迁移到MSE Nacos
ACM进入下线状态,所有配置管理相关的需求由MSE中的Nacos承接(ACM独享版,更好的安全和稳定性)。您需要在ACM控制台导出配置,然后在MSE控制台导入之前导出的配置即可完成迁移。具体操作,请参见将应用配置从ACM迁移到MSE Nacos。
相似产品简介
-
ZooKeeper
ZooKeeper 是一个分布式应用程序协调服务,是 Google Chubby 的开源实现。它是一个为分布式应用提供一致性服务的软件,提供的功能包括配置维护、域名服务、分布式同步、组服务等。在 Hadoop 集群等场景下,ZooKeeper 同时充当应用配置管理的角色。但是由于它是 CP(Consistency,Partition Tolerance) 类应用,因此在可用性和性能上都会受到一定影响。
-
etcd
和 ZooKeeper 类似,etcd 是一个高可用的键值存储系统,主要用于配置共享和服务发现。ETCD 是由 CoreOS 开发并维护的,灵感来自于 ZooKeeper 和 Doozer。它使用 Go 语言编写,并通过 Raft 一致性算法处理日志复制以保证强一致性。etcd 和 ZooKeeper 类似,同样可以用来做应用管理配置。但是由于它是强一致的管理类应用,因此其可用性和性能在某些场景会受到一定影响。
-
Spring Cloud Config Server
和 ACM 类似,Spring Cloud Config Server 为服务端和客户端提供了分布式系统的外部配置支持。配置服务器为各应用的所有环境提供了一个中心化的外部配置。与 ACM 不同的是,Spring Cloud 配置服务器默认采用 Git 来存储配置信息,其配置存储、版本管理、发布等功能都基于 Git 或其他外围系统来实现。除此之外,在配置功能方面,ACM 和 Spring Cloud Config 也有很大不同。
产品对比
以下表格详细描述了 ACM 与 etcd、ZooKeeper 和 Spring Cloud Config 在应用配置管理方面的区别。
产品 | ACM | Spring Cloud Config Server | ZooKeeper | ETCD |
---|---|---|---|---|
配置修改 | 直接在 ACM 控制台上进行配置修改 | 一般在 Git 仓库上进行配置修改 | 通过调用 ZK API 修改 | 通过调用 etcd API 修改 |
配置自动推送 | 修改过的配置自动推送到监听的客户端 | 客户端只能在启动的时候加载 | 修改过的配置自动推送到监听的客户端 | 修改过的配置自动推送到监听的客户端 |
API接口 | 基于 RESTful API,同时支持 Java Native 接口,Spring Cloud 接口,和其他语言类接口 | 基于 RESTful API 和 Spring Cloud 规范,同时也支持其他语言客户端 | 支持 Java 原生接口 | 基于 RESTful API 的接口 |
版本管理 | 在 ACM 上自动记录各个修改的版本信息 | 通过 Git 间接管理版本 | 不带任何版本控制 | 不带任何版本控制 |
配置推送追踪 | 可查询所有客户端配置推送状态和轨迹 | 无法查询配置推送历史 | 无法查询配置推送历史 | 无法查询配置推送历史 |