一圖了解Kafka架構(gòu)

Kafka的架構(gòu)

kafka.jpg

Partition 分區(qū)

  • 消息日志分區(qū)在集群的服務(wù)器上。
  • 一個(gè)topic的消息被分配到不同的分區(qū)中。
  • 分區(qū)中消息是順序保存的,通過(guò)offset保持順序。
  • 分區(qū)可以設(shè)置備份(Replication),用于容災(zāi)。
  • 通過(guò)Zookeeper選舉分區(qū)leader節(jié)點(diǎn)。
  • 可以將分區(qū)及備份分配到不同的服務(wù)器,提高可用性。

Topic 消息日志

  • 消息在同一個(gè)分區(qū)中保持順序,在不同分區(qū)中無(wú)法保持順序。
  • 通過(guò)順序IO讀寫(xiě)磁盤(pán)。
  • 消息默認(rèn)保存7天。
  • 消息消費(fèi)后并不會(huì)刪除,消費(fèi)者記錄讀取的位置。

Producer 生產(chǎn)者

  • 通過(guò)push方式向集群發(fā)送消息。
  • 決定消息存儲(chǔ)在哪個(gè)分區(qū)。
  • 可以自定義分區(qū)存儲(chǔ)規(guī)則,例如:輪詢(xún)。

Consumer 消費(fèi)者

  • 通過(guò)pull方式獲取消息。
  • 相同的消費(fèi)組內(nèi),通過(guò)負(fù)載均衡方式消費(fèi)消息,即消息只被組內(nèi)一個(gè)消費(fèi)者消費(fèi)。
  • 不同的消費(fèi)組訂閱相同的topic,組間通過(guò)廣播方式獲得消息。即同一條消息,會(huì)被不同消費(fèi)組消費(fèi)。
  • 通過(guò)zookeeper記錄消費(fèi)記錄offset。
  • 可以通過(guò)設(shè)置offset值,消費(fèi)過(guò)往的消息。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容