為什么不應該使用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更適合做服務發現?
