1. 程式人生 > 實用技巧 >02.Kafka基本概念詳解

02.Kafka基本概念詳解

Kafka概念詳解——http://kafka.apache.org/24/documentation.html

Kafka的基本概念

Broker:

  • Kafka叢集包含一個或多個伺服器,這種伺服器被稱為broker。
  • broker端不維護資料的消費狀態,提升了效能。
  • 直接使用磁碟進行儲存,線性讀寫,速度快:避免了資料在JVM記憶體和系統記憶體之間的複製,
    減少耗效能的建立物件和垃圾回收。

Producer:

負責釋出訊息到Kafka broker

Consumer:

訊息消費者,向Kafka broker讀取訊息的客戶端,consumer從broker拉取(注意是拉去不是broker推送)資料並進行處理。

Consumer Group:

  • 每個Consumer屬於一個特定的Consumer Group(可為每個Consumer指定group name,若不指定group name則屬於預設的group)

Topic:

  • 每條釋出到Kafka叢集的訊息都有一個類別,這個類別被稱為Topic。
  • 一個邏輯的概念,由1到多個分割槽(Partition)組成。
  • Topic類似於檔案系統中的資料夾,events是目錄中的檔案
  • 一個Topic可以被多個使用者操作
  • 每個Topic KafKa叢集都會維護一個分割槽日誌
    在這裡插入圖片描述

Partition:

  • 實際訊息儲存單位
  • 一個或多個Partition構成Topic
  • 每個分割槽都是順序,不可變的佇列
  • 每個分割槽是一組有序的訊息日誌
  • 每個分割槽都有一個物理日誌檔案
  • 分割槽的數量在執行期間可以增加,但是不能減少
  • 生產者生產的訊息,只會發給主題的一個分割槽
  • 一個topic的分割槽可以分佈在不同的broker上

offset

  • 屬於分割槽裡的一個概念
  • 當訊息到達分割槽時,該訊息會有一個標識id就叫offset
  • offset是訊息在分割槽中的唯一標識
  • KafKa通過offset來保證分割槽內訊息的順序性
  • offset不跨分割槽
  • offset從0開始,依次遞增

Replica

  • 屬於分割槽裡的一個概念
  • 一個分割槽內的訊息可以有多個副本
  • 與ES的副本機制類似
  • 副本分為leader和follower
  • leader副本負責處理讀寫請求
  • follower副本只負責與leader副本的訊息同步
  • 副本分散在不同的broker中,當leader副本出現故障時,從follower副本中重新選舉新的leader副本
  • 分割槽中所有副本統稱為AR
  • 某Topic比如有三個分割槽每個分割槽三個副本如下圖:
    在這裡插入圖片描述