本文對比分析了幾款主流的應用配置類產品。
相似產品簡介
-
ZooKeeper
ZooKeeper 是一個分布式應用程式協調服務,是 Google Chubby 的開源實現。它是一個為分布式應用提供一致性服務的軟體,提供的功能包括配置維護、網域名稱服務 (DNS)、分布式同步、組服務等。在 Hadoop 叢集等情境下,ZooKeeper 同時充當Application Configuration Manangement的角色。但是由於它是 CP(Consistency,Partition Tolerance) 類應用,因此在可用性和效能上都會受到一定影響。
-
etcd
和 ZooKeeper 類似,etcd 是一個高可用的KVStore for Redis系統,主要用於配置共用和服務發現。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 在Application Configuration Manangement方面的區別。
產品 | 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 間接管理版本 | 不帶任何版本控制 | 不帶任何版本控制 |
配置推送追蹤 | 可查詢所有用戶端配置推送狀態和軌跡 | 無法查詢配置推送歷史 | 無法查詢配置推送歷史 | 無法查詢配置推送歷史 |