Pages - Menu

2021年9月8日 星期三

[Zookeeper]分佈式系統-Zookeeper

前言

最近在搞solrCloud,然後就莫名奇妙看到這個東西了。說solrCloud依賴這個服務,但這個服務在幹嘛的,我還真不知道。只好先研究一下了。怎麼感覺我換工作後一直在K文件,然後都是中文資料很少的那種😭。


正文

下面是我看了一些文章後的理解,
如果有不對的地方,還請指正。

如果是要教學安裝,可以按回上一頁了。

Zookeeper 是一個高性能、分佈式的應用協調服務。
許多的分佈式系統都是用它做功能協調。

這是為瞭解決 Master/Slave模式的單點故障隱患。

Zookeeper架構

Zookeeper服務有兩個角色,一個是leader,負責寫服務和數據同步,剩下的是follower,提供讀服務,leader失效後會在follower中重新選舉新的leader。

  • 客戶端可以連接到每個server,每個server的數據完全相同。

  • 每個follower都和leader有連接,接受leader的數據更新操作。

  • Server記錄事務日誌和快照到持久存儲。

  • 大多數server可用,整體服務就可用。

ref:十分鐘初識zookeeper

CAP理論

  • 一致性(Consistency)
  • 可用性(Avallability)
  • 分區容錯性(Partition tolerance)

一個分佈式系統頂多達成上面的其中兩點,
而Zookeeper保證的是CP (可用性及分區容錯性)

ref.
1.0 Zookeeper 教程

結論

已我現在接觸過的系統,比較像是 GKE上面的clusterIP,
當服務進入Zookeeper時,zookeeper會自動幫你決定該服務會導向哪。 同時會將資料保持一致,就像每個pod都是一樣的。

分佈式系統要解決的問題,除了單點故障隱患以外,還有對外統一入口、統一命名服務、狀態同步服務、集群管理、分佈式應用配置項的管理等。

沒有留言:

張貼留言