kafka的一點記錄

1.kafka 主要有哪些角色

每一個kafka節點稱爲一個broker,多個broker節點組成kafka集羣。每個broker 上可以存儲多個topic的分區partition,

每個分區可以有n備份,其中n可以擴展。

kafka的消費者consumer,多個consumer可以組成一個consumer grop。但是一條消息只會被同一個consumer group的一個consumer消費一次,可以被不同的consumer group 重複消費。

在kafka集羣中,有三種類似leader的角色:

  • broker 的leader 其選舉有zk 控制,選舉出來的東西稱爲controller
  • partition 的learder 其選舉由controller 根據zk 中的ISR 進行選舉(leader 負載 partition的讀寫)
  • coordinator ,其選舉方式,默認由保存offset的broker 擔任,宕機後,可由任一broker 進行選舉

(coordinator 負責 消費者消費partition的負載均衡)

2.kafka的容災備份

kafka的容災備份是以topic爲單位的,每一個topic 可以有n個分區,每個區分可以有m個備份,這些備份分佈在各個broker中。

生產者再插入隊列的時候,可以指定策略來保證該消息是否要同步到各個備份纔算成功。

當某個partition leader 掛了時候,這時候會在ISR中重新選擇一個leader,保證可用性。

當某個kafka 因異常宕機重啓的時候,它上面的數據會重新同步一份。如果採用的是kafka的優雅停機,則可以進行增量的更新。

3.kafka的存儲機制

4.kafka的消費機制

一個消費者可以同時消費多個分區,但是一個分區只能被一個消費者消費。消費者在消費的時候,可以自動設置提交(poll 的時候就會自動提交),也可以主動進行異步或者同步的提交。消費者可以指定消費的分區及offerset,這種情況下則不受負載均衡的控制。消費者的提交,其實是提交到了一個特定的topic。由該topic記錄某一分區消費的offetset具體情況。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章