服務和負載均衡的實現(zookeeper)

2021-07-30 06:12:44 字數 1627 閱讀 3136

是什麼?

zookeeper是乙個大型分布式系統的可靠地協調系統,提供的功能包括配置維護,名字服務,分布式同步,組服務等。

zeepkeeper

是可以通過集群複製的,集群間通過自動廣播協議來保持資料的一致性。該協議包括

leader election

和atomic broadcas

階段。集群中將選出乙個

leader,

其他的機器則稱為

follower

,所有的寫操作都被傳送給

leader

,並通過

broadcas

將所有的更新告訴

follower

。當leader

崩潰或者失去大量

follower

時,需要重新選舉出乙個

leader

,讓所有的伺服器都恢復正常的狀態。當

leader

被選舉出來,且大多數伺服器完成了和

leader

的狀態同步後,

leader election

的過程就完成了。接下來

atomic broadcas

同步leader

和follower

之間的資訊,保證

leader

和follower

具有相同的系統狀態。

2、使用zookeeper的好處?

zookeeper的核心類似於乙個檔案系統,提供一些簡單的操作和一些附加的抽象,如

znode

的排序於

watch

機制,並且集群的部署方式使其具有較高的可靠性。

zookeeper

的協作過程簡化了鬆散耦合系統之間的互動,即使參與者彼此不知道對方的存在,也能夠互相發現並且完成互動。

3、zookeeper簡單使用。

zookeeper包含

建立乙個node節,

刪除乙個node節點,

設定和獲取節點內容,

新增子節點,

判斷節點是否存在,

以及當節點的狀態發生變化時,可以通過watcher機制實現,讓客戶端得到相應的通知(類似於觀察者模式)。

4、路由和負載均衡的實現。

在zookeeper中,一但伺服器與

zookeeper

集群斷開連線,

znode

節點已經不存在,此時通過註冊相應的

watcher

機制,服務消費者能夠第一時間獲取服務提供者資訊的變更。利用

znode

的特點和

watcher

機制將其作為動態註冊和獲取服務資訊的配置中心,統一管理服務名稱和其對應的伺服器列表,能夠實時的感知到後端伺服器的狀態,從而保持服務配置資訊能夠一致以及進行簡單的擴容。

zookeeper類似於一棵節點樹,當服務提供者啟動時,將伺服器的名稱、位址以節點的資訊新增到配置中心,而服務消費中通過伺服器名稱以及配置中心來獲得需要呼叫的服務節點下的服務位址,再利用負載均衡演算法選取其中的某一台伺服器進行呼叫。

負載均衡的實現

什麼是負載均衡 負載均衡建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴充套件網路裝置和伺服器的頻寬 增加吞吐量 加強網路資料處理能力 提高網路的靈活性和可用性。負載均衡 load balance 其意思就是分攤到多個操作單元上進行執行,例如web伺服器 ftp伺服器 企業關鍵應用伺服器和其...

服務化的演變和負載均衡

分布式應用架構體系對於邏輯複雜的需求十分強烈,上層業務都想借自己已有的遞增服務 來快速搭建更多 更豐富的應用,降低新業務開展的人力和時間成本,快速滿足瞬息萬變的市場需求,公共的業務被區分出來,形成可共用的服務,最大程度地保障了 和邏輯的復用,避免重複建設,這種設計也被稱為soa。soa servic...

Docker Swarm服務發現和負載均衡原理

docker swarm服務發現和負載均衡原理 docker使用的是linux核心iptables和ipvs的功能來實現服務發現和負載均衡。iptables是linux核心中可用的包過濾技術,可根據資料報的內容進行分類 修改和 決策。ipvs是linux核心中可用的傳輸級負載均衡。本地建立乙個集群環...