Kafka的選舉機制

2021-10-09 09:56:37 字數 980 閱讀 6578

kafka架構裡有生產者,消費者和broker,第乙個啟動的broker會去zookeeper裡註冊,成為leader,而後面去zookeeper註冊的broker則會收到異常,只能註冊watch物件,對leader進行監控,如果leader broker掛了,其他第乙個註冊的broker成為新的leader。並更新isr副本佇列。

每乙個partition都有多個副本,一般是2-3個副本,

在kafka的消費端,會有乙個消費者協調器以及消費組,組協調器groupcoordinator需要為消費組內的消費者選舉出乙個消費組的leader,如果消費組內還沒有leader,那麼第乙個加入消費組的消費者即為消費組的leader。

分割槽中的所有副本統稱為 ar (assigned replicas)。所有與leader副本保持一定程度同步的副本(包括leader副本在內)組成 isr (in sync replicas)。 isr 集合是 ar 集合的乙個子集。訊息會先傳送到leader副本,然後follower副本才能從leader中拉取訊息進行同步。同步期間,follow副本相對於leader副本而言會有一定程度的滯後。前面所說的 」一定程度同步「 是指可忍受的滯後範圍,這個範圍可以通過引數進行配置。於leader副本同步滯後過多的副本(不包括leader副本)將組成 osr (out-of-sync replied)由此可見,ar = isr + osr。正常情況下,所有的follower副本都應該與leader 副本保持 一定程度的同步,即ar=isr,osr集合為空。

leader副本負責維護和跟蹤 isr 集合中所有follower副本的滯後狀態,當follower副本落後太多或失效時,leader副本會把它從 isr 集合中剔除。如果 osr 集合中所有follower副本「追上」了leader副本,那麼leader副本會把它從 osr 集合轉移至 isr 集合。預設情況下,當leader副本發生故障時,只有在 isr 集合中的follower副本才有資格被選舉為新的leader,而在 osr 集合中的副本則沒有任何機會(不過這個可以通過配置來改變)。

kafka選舉機制

kafka是乙個高效能,高容錯,多副本,可複製的分布式訊息系統,是基於raft演算法來實現leader選舉的。整個架構設計中涉及幾處選舉 所謂控制器就是乙個borker,在乙個kafka集群中,有多個broker節點,但是它們之間需要選舉出乙個leader,其他的broker充當follower角色...

Kafka選舉機制及資料丟失情況分析

unclean.leader.election 只能在broker級別 實際上是在集群範圍內 進行配置,它的預設值是true 我們之前提到過,當分割槽首領不可用時,乙個同步副本會被選為新首領。如果在選舉過程中沒有丟失資料,也就是說提交的資料同時存在於所有的同步副本上,那麼這個選舉就是 完全 的。但如...

Kafka Leader的選舉機制

size large color red b kafka的leader是什麼 b color size 首先kafka會將接收到的訊息分割槽 partition b 每個主題 topic 的訊息有不同的分割槽。b 這樣一方面訊息的儲存就不會受到單一伺服器儲存空間大小的限制,另一方面訊息的處理也可以在...