2017-04-03 69 views
2

如果某些消息未在卡夫卡回覆,會發生什麼情況。假設我正在同時使用消息。而且有一位消費者無法處理消息的偏移量= 20,並且沒有發送Ack。但是偏移量= 21的其他消息已被消耗並回復。我怎麼才能重播只有20?卡夫卡消費方故障處理和重新發送

我是否需要將消息放入DLQ並再次消耗?如果在那裏發生故障呢?

我有點困惑與保證交付。

回答

4

如果您使用組管理,其中kafka分配分區,則不會發生 - 分區僅分配給一個線程。如果你有更多的線程,它們都從不同的分區消耗,每個分區都有自己的偏移量。

+0

批處理模式會發生什麼?如果一些消息被消耗,而有些則不消失? –

+0

在批處理模式下,您將輕鬆獲得一些重複項。 –

+0

鑑於我選擇在開始我的消費者時選擇最早的抵消作爲抵消? –

0

在你的情況下,你最近承諾的偏移量是21.並且Kafka假設你的20也已經提交了。所以當你重新啓動它將從偏移量21開始。是的。我記得蓋瑞提到你要麼在20點停止容器,要麼把20放在其他話題上以備後用。