首先介紹下cap原理,可以參考:。
P:Partition tolerance,網絡分區容錯。類似多機房部署,保證服務穩定性。
A: Availability,可用性。
C:Consistency ,一致性。
CAP定理:CAP三個屬性對於分佈式系統不同同時做到。如AP/CP/AC。
再來看 Eureka 和 Zookeepr 區別:
-
Zookeeper是CP,分佈式協同服務,突出一致性。對ZooKeeper的的每次請求都能得到一致的數據結果,但是無法保證每次訪問服務可用性。如請求到來時,ZooKeeper正在做leader選舉,此時不能提供服務,即不滿足A可用性。
-
Eureka 是AP,高可用與可伸縮的Service發現服務,突出可用性。相對於Zookeeper而言,可能返回數據沒有一致性,但是保證能夠返回數據,服務是可用的。
參考:
1.cap原理:http://www.ruanyifeng.com/blog/2018/07/cap.html
2. http://www.heartthinkdo.com/?p=1933
3. https://medium.com/knerd/eureka-why-you-shouldnt-use-zookeeper-for-service-discovery-4932c5c7e764
4. http://dockone.io/article/78