2017-04-03 43 views
2

如果某些消息未在卡夫卡回复,会发生什么情况。假设我正在同时使用消息。而且有一位消费者无法处理消息的偏移量= 20,并且没有发送Ack。但是偏移量= 21的其他消息已被消耗并回复。我怎么才能重播只有20?卡夫卡消费方故障处理和重新发送

我是否需要将消息放入DLQ并再次消耗?如果在那里发生故障呢?

我有点困惑与保证交付。

回答

4

如果您使用组管理,其中kafka分配分区,则不会发生 - 分区仅分配给一个线程。如果你有更多的线程,它们都从不同的分区消耗,每个分区都有自己的偏移量。

+0

批处理模式会发生什么?如果一些消息被消耗,而有些则不消失? –

+0

在批处理模式下,您将轻松获得一些重复项。 –

+0

鉴于我选择在开始我的消费者时选择最早的抵消作为抵消? –

0

在你的情况下,你最近承诺的偏移量是21.并且Kafka假设你的20也已经提交了。所以当你重新启动它将从偏移量21开始。是的。我记得盖瑞提到你要么在20点停止容器,要么把20放在其他话题上以备后用。