1. 程式人生 > 其它 >Kafka基礎知識入門篇[新手教程]

Kafka基礎知識入門篇[新手教程]

kafka簡介

  Kafka 是一個分散式的基於釋出/訂閱模式的訊息佇列(Message Queue),主要應用與大資料實時處理領域。其主要設計目標如下:

  1. 以時間複雜度為O(1)的方式提供訊息持久化能力,即使對TB級以上資料也能保證常數時間的訪問效能

  2. 高吞吐率。即使在非常廉價的機器上也能做到單機支援每秒100K條訊息的傳輸

  3. 支援Kafka Server間的訊息分割槽,及分散式消費,同時保證每個partition內的訊息順序傳輸,同時支援離線資料處理和實時資料處理

kafka基礎知識

 下面給出 Kafka 一些重要概念,讓大家對 Kafka 有個整體的認識和感知

  1. Producer:即訊息生產者,向 Kafka Broker 發訊息的客戶端。

  2. Consumer:即訊息消費者,從 Kafka Broker 讀訊息的客戶端。

  3. Consumer Group:即消費者組,消費者組內每個消費者負責消費不同分割槽的資料,以提高消費能力。一個分割槽只能由組內一個消費者消費,不同消費者組之間互不影響。

  4. Broker:一臺 Kafka 機器就是一個 Broker。一個叢集是由多個 Broker 組成的且一個 Broker 可以容納多個 Topic。

  5. Topic:可以簡單理解為佇列,Topic 將訊息分類,生產者和消費者面向的都是同一個 Topic。

  6. Partition:為了實現Topic擴充套件性,提高併發能力,一個非常大的 Topic 可以分佈到多個 Broker 上,一個 Topic 可以分為多個 Partition 進行儲存,每個 Partition 是一個有序的佇列。

  7. Replica:即副本,為實現資料備份的功能,保證叢集中的某個節點發生故障時,該節點上的 Partition 資料不丟失,且 Kafka 仍然能夠繼續工作,為此Kafka提供了副本機制,一個 Topic 的每個 Partition 都有若干個副本,一個 Leader 副本和若干個 Follower 副本。

  8. Leader:即每個分割槽多個副本的主副本,生產者傳送資料的物件,以及消費者消費資料的物件,都是 Leader。

  9. Follower:即每個分割槽多個副本的從副本,會實時從 Leader 副本中同步資料,並保持和 Leader 資料的同步。Leader 發生故障時,某個 Follower 還會被選舉併成為新的 Leader , 且不能跟 Leader 在同一個broker上, 防止崩潰資料可恢復。

  10. Offset:消費者消費的位置資訊,監控資料消費到什麼位置,當消費者掛掉再重新恢復的時候,可以從消費位置繼續消費。

  11. ZooKeeper服務:Kafka 叢集能夠正常工作,需要依賴於 ZooKeeper,ZooKeeper 幫助 Kafka 儲存和管理叢集元資料資訊。在最新版本中, 已經慢慢要脫離 ZooKeeper。