kafka重複消費的情況
資料沒有丟,只是資料重複消費了。丟不丟資料指的是producer到broker的過程,以及broker儲存資料的過程。重複消費、漏消費指的是消費結果,所以我們記憶這些過程的時候,或者定位問題的時候,首先應該明確,是丟資料了還是重複消費了。
重複消費
ack=-1
producer到broker資料因為網路問題,傳送重複資料導致consumer消費重複
先消費的資料,還沒有提交offset 宕機了
kafka漏消費
ack=0
資料直接因為網路問題丟失
先提交的offset,然後consumer宕機了
kafka 事務
是這樣的,要實現exactly once 只能針對單個分割槽、單次會話的情況(重啟一次producer是一次會話)。如果,我重啟了服務,那麼pid就會變化,還是會造成重複消費的問題。這時候我們需要乙個transactionid,這個id不是每次重啟服務就會發,而是根據transactionconcoordinator 獲得,並且與pid繫結,這樣我們在重啟服務以後,就可以根據transactionid找到我們的pid,broker也就能識別是否重複了。
kafka重複消費問題
問題描述 採用kafka讀取訊息進行處理時,consumer會重複讀取afka佇列中的資料。問題原因 kafka的consumer消費資料時首先會從broker裡讀取一批訊息資料進行處理,處理完成後再提交offset。而我們專案中的consumer消費能力比較低,導致取出的一批資料在session....
kafka消費延遲或者重複消費原因
由於專案中需要使用kafka作為訊息佇列,並且專案是基於spring boot來進行構建的,所以專案採用了spring kafka作為原生kafka的乙個擴充套件庫進行使用。先說明一下版本 用過kafka的人都知道,對於使用kafka來說,producer的使用相對簡單一些,只需要把資料按照指定的格...
解決Kafka重複消費問題
某服務 用了springboot spring kafka 處理kafka訊息時,發現每條訊息處理時間長達60 秒。幾百條訊息處理完後,又重新從第一條開始重複消費。kafka消費者有兩個配置引數 max.poll.interval.ms 兩次poll操作允許的最大時間間隔。單位毫秒。預設值30000...