Kafka學習之旅 十五 重設消費者組位移

2021-09-26 20:10:16 字數 1376 閱讀 3914

簡介

相信大家也遇到過需要重某個位置或者時間點重新消費的情況那麼本篇講下重新設定消費組位移。kafka 乙個比較有特色的設計是由於它是基於日誌結構(log-based)的訊息引擎,消費者在消費訊息時,僅僅是從磁碟檔案上讀取資料而已,是唯讀的操作,因此消費者不會刪除訊息資料。同時,由於位移資料是由消費者控制的,因此它能夠很容易地修改位移的值,實現重複消費歷史資料的功能。

重設位移大致可以從兩個維度來進行。

位移維度。這是指根據位移值來重設。也就是說,直接把消費者的位移值重設成我們給定的位移值。

時間維度。我們可以給定乙個時間,讓消費者把位移調整成大於該時間的最小位移;也可以給出一段時間間隔,比如 30 分鐘前,然後讓消費者直接將位移調回 30 分鐘之前的位移值。

3.常用示例

這裡主要介紹一下通過指令碼的方式

更新到當前group最初的offset位置

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test-group --reset-offsets --all-topics --to-earliest --execute

更新到指定的offset位置

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test-group --reset-offsets --all-topics --to-offset 500000 --execute

更新到當前offset位置(解決offset的異常)

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test-group --reset-offsets --all-topics --to-current --execute

offset位置按設定的值進行位移

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test-group --reset-offsets --all-topics --shift-by -100000 --execute

offset設定到指定時刻開始

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test-group --reset-offsets --all-topics --to-datetime 2017-08-04t14:30:00.000

Kafka學習之旅 五 Kafka中的壓縮

kafka 會為我們保留一定量時間的資料那麼為kafka 選擇乙個合適的壓縮演算法是非常重要的,可以在節約儲存空間的同時又將效率影響到最低。在 kafka 中,壓縮可能發生在兩個地方 生產者端和 broker 端。生產者程式中配置 compression.type 引數即表示啟用指定型別的壓縮演算法...

kafka學習十三 消費者消費資料

由於自動提交是每隔一段時間提交一次,假如消費者拉到一批資料,剛處理一部分就提交了,然後掛掉了,這個時候未消費的那批資料就徹底丟失了,因為offset已經提交了,不會重新消費。同樣的,消費者拉到一批資料,剛處理一部分沒有提交,然後掛掉了,這個時候已經消費的那批訊息會被再次消費。手動消費只會造成訊息重複...

kafka學習筆記4 kafka消費者

消費者和消費者群組 kafka消費者分為消費者群組和消費者。每乙個kafka消費者都隸屬於乙個kafka消費者群組。每個消費者群組可以對應乙個或多個topic,每個topic內的分割槽只能對應消費者群組內的乙個消費者,當消費者比topic中的分割槽數多時,多餘的消費者不會接收topic中的資訊。這種...