Kafka詳細概述

Kafka定義

Kafka是一個分佈式的基於發佈/訂閱模式的消息隊列,主要應用於大數據實時處理領域。

傳統消息隊列的應用場景

image.png
image.png

消息隊列的兩種模式

  1. 點對點模式(一對一,消費者主動拉取數據,消息收到後消息清除)
    消息生產者生產消息發送到Queue中,然後消息消費者從Queue中取出並且消費消息。
    消息被消費以後,queue中不再有存儲,所以消息消費者不可能消費到已經被消費的消息。Queue支持存在多個消費者,但是對一個消息而言,只會有一個消費者可以消費。
    image.png
  2. 發佈/訂閱模式(一對多,消費者消費數據之後不會清除消息)
    消息生產者(發佈)將消息發佈到topic中,同時有多個消息消費者(訂閱)消費該消息。和點對點方式不同,發佈到topic的消息會被所有訂閱者消費
    image.png

Kafka基礎架構

image.png

  1. Producer :消息生產者,就是向kafka broker發消息的客戶端;
  2. Consumer :消息消費者,向kafka broker取消息的客戶端;
  3. Consumer Group (CG):消費者組,由多個consumer組成。消費者組內每個消費者負責消費不同分區的數據,一個分區只能由一個消費者消費;消費者組之間互不影響。所有的消費者都屬於某個消費者組,即消費者組是邏輯上的一個訂閱者。
  4. Broker :一臺kafka服務器就是一個broker。一個集羣由多個broker組成。一個broker可以容納多個topic。
  5. Topic :可以理解爲一個隊列,生產者和消費者面向的都是一個topic;
  6. Partition:爲了實現擴展性,一個非常大的topic可以分佈到多個broker(即服務器)上,一個topic可以分爲多個partition,每個partition是一個有序的隊列;
  7. Replica:副本,爲保證集羣中的某個節點發生故障時,該節點上的partition數據不丟失,且kafka仍然能夠繼續工作,kafka提供了副本機制,一個topic的每個分區都有若干個副本,一個leader和若干個follower。
  8. leader:每個分區多個副本的“主”,生產者發送數據的對象,以及消費者消費數據的對象都是leader。
  9. follower:每個分區多個副本中的“從”,實時從leader中同步數據,保持和leader數據的同步。leader發生故障時,某個follower會成爲新的follower。

關注微信公衆號
簡書:https://www.jianshu.com/u/0278602aea1d
CSDN:https://blog.csdn.net/u012387141

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