kafka 七 如何儲存消費端的消費位置

2021-10-12 11:22:41 字數 1180 閱讀 7768

每個topic可以劃分多個分割槽(每個topic至少有乙個分割槽),同一topic下的不同分割槽包含的訊息是不同的。每個訊息在被新增到分割槽時,都會被分配乙個offset(稱之為偏移量),它是訊息在此分割槽中的唯一編號,kafka通過offset保證訊息在分區內的順序,offset的順序不跨分割槽,即kafka只保證在同乙個分區內的訊息是有序的; 對於應用層的消費來說,每次消費乙個訊息並且提交以後,會儲存當前消費到的最近的乙個offset。那麼offset儲存在**?

在kafka中,提供了乙個consumer_offsets_* 的乙個topic,把offset資訊寫入到這個topic中。consumer_offsets——按儲存了每個consumer group某一時刻提交的offset資訊。

__consumer_offsets 預設有50個分割槽。

計算公式

math.abs(「groupid」.hashcode())%groupmetadatatopicpartitioncount ; 由於預設情況下

groupmetadatatopicpartitioncount有50個分割槽,計算得到的結果為:35, 意味著當前的

consumer_group的位移資訊儲存在__consumer_offsets的第35個分割槽

執行如下命令,可以檢視當前consumer_goup中的offset位移提交的資訊

kafka-console-consumer.sh

--topic

__consumer_offsets

--partition

15--

bootstrap-server

192.168

.13.102

:9092

,192.168

.13.103

:9092

,192.168

.13.104

:9092

--formatter

'kafka

.coordinator

.group

.groupmetadatamanager$offsetsmessageformatter

從輸出結果中,我們就可以看到test這個topic的offset的位移日

kafka如何保證資料的順序消費

一公尺多的李同學 最後發布於2019 05 22 20 49 58 閱讀數 5619 收藏 14 展開在對kafka的理解中,常常會被問及到kafka如何保證資料的順序消費 kafka的資料重複消費怎麼處理 如何保證kafka中資料不丟失?今天先說說資料的順序消費問題。關於順序消費的幾點說明 kaf...

kafka是如何保證訊息不被重複消費的

一 kafka自帶的消費機制 kafka有個offset的概念,當每個訊息被寫進去後,都有乙個offset,代表他的序號,然後consumer消費該資料之後,隔一段時間,會把自己消費過的訊息的offset提交一下,代表我已經消費過了。下次我要是重啟,就會繼續從上次消費到的offset來繼續消費。但是...

高吞吐的kafka如何保證訊息消費的有序性

producer端傳送的message必須指定是傳送到哪個topic,但是不需要指定topic下的哪個partition,因為kafka會把收到的message進行load balance,均勻的分布在這個topic下的不同的partition上 hash message broker數量 同組有多...