在consumer端enable.auto.commit設置為false時
正常情況時通過調用ack.acknowledge();(spring-kafka,官方kafka不是這個接口)來進行offect的提交,但是如果發生異常的情況下,offect沒有觸發提交,這時kafka是不會重復發消息的,除非這時候系統重啟,或者consumer端重置
並且在這種情況下,如果后面的消息被正常消費了,那么異常這個消息的offect就直接被覆蓋過去了,這條記錄就丟失不會再被消費
以上表述文字通過代碼實測
具體詳細的見
https://www.cnblogs.com/xuwujing/p/8432984.html