Kafka定義
Kafka是一個分佈式的基於發佈/訂閱模式的消息隊列,主要應用於大數據實時處理領域。
傳統消息隊列的應用場景
消息隊列的兩種模式
- 點對點模式(一對一,消費者主動拉取數據,消息收到後消息清除)
消息生產者生產消息發送到Queue中,然後消息消費者從Queue中取出並且消費消息。
消息被消費以後,queue中不再有存儲,所以消息消費者不可能消費到已經被消費的消息。Queue支持存在多個消費者,但是對一個消息而言,只會有一個消費者可以消費。
- 發佈/訂閱模式(一對多,消費者消費數據之後不會清除消息)
消息生產者(發佈)將消息發佈到topic中,同時有多個消息消費者(訂閱)消費該消息。和點對點方式不同,發佈到topic的消息會被所有訂閱者消費
Kafka基礎架構
- Producer :消息生產者,就是向kafka broker發消息的客戶端;
- Consumer :消息消費者,向kafka broker取消息的客戶端;
- Consumer Group (CG):消費者組,由多個consumer組成。消費者組內每個消費者負責消費不同分區的數據,一個分區只能由一個消費者消費;消費者組之間互不影響。所有的消費者都屬於某個消費者組,即消費者組是邏輯上的一個訂閱者。
- Broker :一臺kafka服務器就是一個broker。一個集羣由多個broker組成。一個broker可以容納多個topic。
- Topic :可以理解爲一個隊列,生產者和消費者面向的都是一個topic;
- Partition:爲了實現擴展性,一個非常大的topic可以分佈到多個broker(即服務器)上,一個topic可以分爲多個partition,每個partition是一個有序的隊列;
- Replica:副本,爲保證集羣中的某個節點發生故障時,該節點上的partition數據不丟失,且kafka仍然能夠繼續工作,kafka提供了副本機制,一個topic的每個分區都有若干個副本,一個leader和若干個follower。
- leader:每個分區多個副本的“主”,生產者發送數據的對象,以及消費者消費數據的對象都是leader。
- follower:每個分區多個副本中的“從”,實時從leader中同步數據,保持和leader數據的同步。leader發生故障時,某個follower會成爲新的follower。
簡書:https://www.jianshu.com/u/0278602aea1d
CSDN:https://blog.csdn.net/u012387141