Kafka 位移主題詳解

2021-10-11 03:21:58 字數 1272 閱讀 9315

建立時機

提交策略

刪除過期訊息優點

缺點kafka中的內部位移主題是_consumer_offsets。

offset訊息

簡單的可以理解為 key-value

註冊訊息

用來註冊、儲存 consumer group資訊的訊息

墓碑訊息

作用用於刪除 group 過期位移甚至是刪除 group 的訊息。tombstone 訊息,即墓碑訊息,也稱 delete mark。

特點主要特點是訊息體是 null。

觸發時機

某個 consumer group 下的所有 consumer 例項都停止且它們的位移資料都已被刪除時,kafka 會向位移主題的對應分割槽寫入 tombstone 訊息,表明要徹底刪除這個 group 的資訊

當 kafka 集群中的第乙個 consumer 程式啟動時,kafka 會根據以下引數自動建立位移主題

自動提交位移

引數 enable.auto.commit = true,代表consumer 在後台默 默地為你定期提交位移,提交間隔由乙個專屬的引數 auto.commit.interval.ms 來控制。

手動提交位移

引數 enable.auto.commit = false。

kafka consumer api 為你提供了位移提交的方法,

try

}catch

(exception e)

finally

finally

}

事實上,很多與 kafka 整合的大資料框架都是禁用自動提交位移的,如 spark、flink 等。

細粒度提交方式

引數是乙個 map 物件

自動提交位移可能存在乙個問題:只要 consumer 一直啟動著, 它就會無限期地向位移主題寫入訊息,若沒有針對位移主題訊息刪除策略,這種訊息最終撐爆整個磁碟。

kafka 使用compact 策略(壓實)來刪除位移主題中的過期訊息,避免該主題無限期膨脹

compact 的過程是掃瞄日誌的所有訊息,剔除那些過期的訊息,把剩下的訊息整理在一起

例如:對於同乙個 key 的兩條訊息 m1 和 m2,如果 m1 的傳送時間早於 m2,那麼 m1 就是過期訊息

如下:

kafka 用專門的後台執行緒log cleaner定期地巡檢待 compact 的主題,看是否存在滿足條件的可刪除資料。

Kafka刪除主題詳解

在kafka的使用 測試過程中,可能老是會遇到想要刪除某個主題的需求,但是由於對其內部機制不夠了解,總是無法有效的刪除主題。今天這篇文章詳細討論如何徹底的刪除乙個主題。在kafka的broker端的配置引數中有這樣乙個引數 delete.topic.enable,必須將它設定為true才能夠刪除ka...

KAFKA詳解 主題說明(二)

從生產者的角度來說,他所操作的單元,一般情況下屬於主題為單位 從消費者的角度來說,他所操作的單元,一般情況下屬於主題為單位 生產者 消費者可以以主題更細單位來操作 分割槽 也是訊息的分類 從kafka的角度來說,沒有限制生產者也沒有限制消費者 生產者與消費者在處理資料的時候,必須要知道要操作的主題是...

Kafka重設訊息位移

為什麼重設位移?開發中有時候會碰到,訊息消費端出現故障統計錯誤,或者訊息格式出現問題,需要修改消費者邏輯重新消費的情況。重設訊息位移可以使消費者重新讀取佇列中的訊息。重設位移策略 緯度策略含義 位移緯度 earliest 位移到佇列未過期的最早訊息 latest 位移到佇列未過期的最新訊息 curr...