日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

kafka rebalance与数据重复消费问题

發布時間:2024/1/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kafka rebalance与数据重复消费问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題和現象:
某個程序在消費kafka數據時,總是重復消費相關數據,仿佛在數據消費完畢之后,沒有提交相應的偏移量。然而在程序中設置了自動提交:enable.auto.commit為true
檢查日志,發現日志提示:

2020-03-26 17:20:21.414 ?WARN 28800 --- [ntainer#2-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator ?: [Consumer clientId=consumer-1,?
groupId=test-consumer-group] Synchronous auto-commit of offsets
?{E2C-GDFS-0=OffsetAndMetadata{offset=9632, leaderEpoch=8, metadata=''}} failed:?
Commit cannot be completed since the group has already rebalanced and assigned the partitions to another member.?
This means that the time between subsequent calls to poll() was longer than the configured max.poll.interval.ms, which typically implies that the poll loop is spending too much time message processing.
?You can address this either by increasing max.poll.interval.ms or by reducing the maximum size of batches returned in poll() with max.poll.records.

日志顯示時當前消費者組中某個消費者自動提交出現錯誤,查看對應消費者信息:

可以看到,最后兩個topic對應的消費者處于離線狀態,程序雖然在消費數據,但無法和kafka同步偏移量等信息。

原因:
這里就涉及到問題是消費者在創建時會有一個屬性max.poll.interval.ms,
該屬性意思為kafka消費者在每一輪poll()調用之間的最大延遲,消費者在獲取更多記錄之前可以空閑的時間量的上限。如果此超時時間期滿之前poll()沒有被再次調用,則消費者被視為失敗,并且分組將重新平衡,以便將分區重新分配給別的成員。

通俗點講,就是消費者消費一次數據,對于該數據的處理過程太慢,導致消費下一條消息的時間延后,超過這個門限,默認300秒,消費者就會唄認為失敗,被踢出消費者組。

解決
1、修改提交方式,改為手動提交(默認為自動提交);

2、根據實際情況,修改提交時間;

max.poll.interval.ms=300


3、kafkaConsumer調用一次輪詢方法只是拉取一次消息。客戶端為了不斷拉取消息,會用一個外部循環不斷調用輪詢方法poll()。每次輪詢后,在處理完這一批消息后,才會繼續下一次的輪詢。

max.poll.records = 50

其他問題
如果一個消費者組有多個消費者,因某些原因其中一個消費者被踢出,當重啟程序繼續消費時,如果剛好kafka 消費者組在rebalance狀態,很可能報JVM運行時錯誤。解決辦法是,盡量將不相干的數據處理設置在不同的消費者組。

sh kafka-consumer-groups.sh --bootstrap-server node5:9092 --describe --group ?test-consumer-group
Warning: Consumer group 'test-consumer-group' is rebalancing.

?

總結

以上是生活随笔為你收集整理的kafka rebalance与数据重复消费问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。