Eureka-Server 集群原理


Eureka 集群的工作原理。我們假設有三台 Eureka Server 組成的集群,第一台 Eureka Server 在北京機房,另外兩台 Eureka Server 在深圳和西安機房。這樣三台 Eureka Server 就組建成了一個跨區域的高可用集群,只要三個地方的任意一個機房不出現問題,都不會影響整個架構的穩定性。

 

 

從圖中可以看出 Eureka Server 集群相互之間通過 Replicate 來同步數據,相互之間不區分主節點和從節點,所有的節點都是平等的。在這種架構中,節點通過彼此互相注冊來提高可用性,每個節點需要添加一個或多個有效的 serviceUrl 指向其他節點。

如果某台 Eureka Server 宕機,Eureka Client 的請求會自動切換到新的 Eureka Server 節點。當宕機的服務器重新恢復后,Eureka 會再次將其納入到服務器集群管理之中。當節點開始接受客戶端請求時,所有的操作都會進行節點間復制,將請求復制到其它 Eureka Server 當前所知的所有節點中。

另外 Eureka Server 的同步遵循着一個非常簡單的原則:只要有一條邊將節點連接,就可以進行信息傳播與同步。所以,如果存在多個節點,只需要將節點之間兩兩連接起來形成通路,那么其它注冊中心都可以共享信息。每個 Eureka Server 同時也是 Eureka Client,多個 Eureka Server 之間通過 P2P 的方式完成服務注冊表的同步。

Eureka Server 集群之間的狀態是采用異步方式同步的,所以不保證節點間的狀態一定是一致的,不過基本能保證最終狀態是一致的。

 

Eurka 保證 AP(CAP原則又稱CAP定理,指的是在一個分布式系統中,一致性(Consistency)、可用性(Availability)、分區容錯性(Partition tolerance))

Eureka Server 各個節點都是平等的,幾個節點掛掉不會影響正常節點的工作,剩余的節點依然可以提供注冊和查詢服務。而 Eureka Client 在向某個 Eureka 注冊時,如果發現連接失敗,則會自動切換至其它節點。只要有一台 Eureka Server 還在,就能保證注冊服務可用(保證可用性),只不過查到的信息可能不是最新的(不保證強一致性)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM