kafka的重複消費問題

2021-09-11 01:53:19 字數 449 閱讀 2187

1.消費端消費能力比較低,處理訊息速度慢

2.根據kafka消費特性,消費者在每個partion上的位置都是乙個整數,即消費下一條訊息的偏移量。這個狀態可以定期檢查點,使得訊息的確認變得非常的方便,消費者可以倒退回舊的偏移量,重新消費。

3.訊息處理完之後提交下乙個消費的offset,而在session-time-out前,訊息還沒有處理完,但是已經超時被kafka視為消費失敗了,導致一直重複消費

1.關閉spring-kafka的自動提交

2.延長session-time-out,權衡max.poll.records減少poll()中返回的批次的最大大小來解決此問題,//一次從kafka中poll出來的資料條數

3.權衡自動提交的時間點,ps最好不要使用這種方式,無法盡量避免重複

4.完美解決的話,只有每次都判斷訊息是否重複消費過了,不過此方式效能開銷比較大,嚴重影響qps,根據場景取捨

kafka重複消費問題

問題描述 採用kafka讀取訊息進行處理時,consumer會重複讀取afka佇列中的資料。問題原因 kafka的consumer消費資料時首先會從broker裡讀取一批訊息資料進行處理,處理完成後再提交offset。而我們專案中的consumer消費能力比較低,導致取出的一批資料在session....

解決Kafka重複消費問題

某服務 用了springboot spring kafka 處理kafka訊息時,發現每條訊息處理時間長達60 秒。幾百條訊息處理完後,又重新從第一條開始重複消費。kafka消費者有兩個配置引數 max.poll.interval.ms 兩次poll操作允許的最大時間間隔。單位毫秒。預設值30000...

kafka重複消費 漏消費情況

kafka重複消費的情況 資料沒有丟,只是資料重複消費了。丟不丟資料指的是producer到broker的過程,以及broker儲存資料的過程。重複消費 漏消費指的是消費結果,所以我們記憶這些過程的時候,或者定位問題的時候,首先應該明確,是丟資料了還是重複消費了。重複消費 ack 1 produce...