本文對比分析了幾款主流的應用配置類產品。

遷移到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 間接管理版本 不帶任何版本控制 不帶任何版本控制
配置推送追蹤 可查詢所有客戶端配置推送狀態和軌跡 無法查詢配置推送歷史 無法查詢配置推送歷史 無法查詢配置推送歷史
說明 ACM 不是 CP 類應用,因此和 etcd、ZK 定位不同,ACM 并不適合用于嚴格的事務類配置服務,例如分布式鎖。