相較之下,ZooKeeper有以下缺點: 1. 複雜。ZooKeeper的部署維護複雜,管理員須要掌握一系列的知識和技能;而Paxos強一致性算法也是素來以複雜難懂而聞名於世;另外,ZooKeeper的使用也比較複雜,須要安裝客戶端,官方只提供了Java和C兩種語言的接口。 2. Java編寫。這裏不是對Java有偏見,而是Java自己就偏向於重型應用,它會引入大量的依賴。而運維人員則廣泛但願保持強一致、高可用的機器集羣儘量簡單,維護起來也不易出錯。 3. 發展緩慢。Apache基金會項目特有的「Apache Way」在開源界飽受爭議,其中一大緣由就是因爲基金會龐大的結構以及鬆散的管理致使項目發展緩慢。 而etcd做爲一個後起之秀,其優勢也很明顯。 1. 簡單。使用Go語言編寫部署簡單;使用HTTP做爲接口使用簡單;使用Raft算法保證強一致性讓用戶易於理解。 2. 數據持久化。etcd默認數據一更新就進行持久化。 3. 安全。etcd支持SSL客戶端安全認證。 4. Etcd支持更方便的HTTP API,多語言支持比zookeeper也要好一些。 Etcd沒有acl權限控制。 相較於etcd、zookeeper,consul最大的特色就是:它整合了用戶服務發現廣泛的需求,開箱即用,下降了使用的門檻,並不須要任何第三方的工具。代碼實現上也足夠簡單。