為什么不應該使用ZooKeeper做服務發現 Eureka 更好
,etcd作為一個受到Zookeeper與doozer啟發而催生的項目,除了擁有與之類似的功能外,更具有以下4個特點{![引自Docker官方文檔]}。
- 簡單:基於HTTP+JSON的API讓你用curl命令就可以輕松使用。
- 安全:可選SSL客戶認證機制。
- 快速:每個實例每秒支持一千次寫操作。
- 可信:使用Raft算法充分實現了分布式。
這里就平時經常用到的服務發現的產品進行下特性的對比,首先看下結論[1]:
Feature | Consul | zookeeper | etcd | euerka |
---|---|---|---|---|
服務健康檢查 | 服務狀態,內存,硬盤等 | (弱)長連接,keepalive | 連接心跳 | 可配支持 |
多數據中心 | 支持 | — | — | — |
存儲服務 |
支持 | 支持 | 支持 | — |
一致性 | raft | paxos | raft | — |
cap | ca | cp | cp | ap |
使用接口(多語言能力) | 支持http和dns | 客戶端 | http/grpc | http(sidecar) |
watch支持 | 全量/支持long polling | 支持 | 支持 long polling | 支持 long polling/大部分增量 |
自身監控 | metrics | — | metrics | metrics |
安全 | acl /https | acl | https支持(弱) | — |
spring cloud集成 | 已支持 | 已支持 | 已支持 | 已支持 |
東方
[1] 服務發現比較:Consul vs Zookeeper vs Etcd vs Eureka
[2] ETCD 簡介 + 使用
[3] 含比較 Eureka的工作原理, 以及它與ZooKeeper的區別
[4] 為什么Eureka比ZooKeeper更適合做服務發現?