您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Zookeeper和Eureka的優缺點對比分析,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
Zookeeper和Eureka哪個更好?
1、CAP理論
一個分布式系統不可能同時很好的滿足一致性,可用性和分區容錯性這三個需求
C:數據一致性:保證所有數據都要同步
A:可用性:要保證任何時候請求數據都能夠正常響應
P:分區容錯性:當網絡通信發生故障時,集群仍然可用,不會因為某個節點掛了或者存在問題,而影響整個系統的正常運作
對于分布式系統來說,出現網絡分區是不可避免的,因此分區容錯性是必須要具備的,也就是說,CAP三者,P是必須的
2、Zookeeper保證CP原則
當向注冊中心查詢服務列表時,我們可以容忍注冊中心返回的是幾分鐘以前的注冊信息,但不能接受服務直接down掉不可用。也就是說,服務注冊功能對可用性的要求高于一致性。但是zookeeper會出現一種情況,當master節點因為網絡故障與其他節點失去聯系時,剩余節點會重新進行leader選舉。問題在于,選舉leader的時間太長,30~120s,且選舉期間整個zookeeper集群都是不可用的,這就導致在選舉期間服務癱瘓。在云部署的環境下,因網絡問題使得zookeeper集群失去master節點是較大概率會發生的事,雖然服務能夠最終恢復,但是漫長的選舉時間導致的注冊長期不可用是不能容忍的
3、Eureka保證AP原則
Eureka優先保證可用性。Eureka各個節點都是平等的,幾個節點掛掉不會影響正常節點的工作,剩余的節點依然可以提供注冊和查詢服務。而Eureka的客戶端在向某個Eureka注冊或是如果發現連接失敗,則會自動切換至其他節點,只要有一臺Eureka還在,就能保證注冊服務可用(保證高可用),只不過查詢的信息可能不是最新的(不保證強一致性)。除此之外,Eureka還有一種自我保護機制,如果在15分鐘內超過85%的節點都沒有正常的心跳,那么Eureka就認為客戶端與注冊中心出現了網絡故障,此時會出現以下幾種情況:
1.Eureka不再從注冊列表中移除因為長時間沒收到心跳而應該過期的服務
2.Eureka仍然能夠接受新服務的注冊和查詢請求,但是不會被同步到其他節點上(即保證當前節點仍然可用)
3.當網絡穩定時,當前實例新的注冊信息會被同步到其他節點中
因此,Eureka可以很好的應對網絡故障導致部分節點失去聯系的情況,而不會像zookeeper那樣使整個注冊服務癱瘓
關于Zookeeper和Eureka的優缺點對比分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。