如果某些消息没有回到卡夫卡,会发生什么。让我们说我同时消费消息。并且一个消费者无法处理偏移= 20的消息并且没有发回Ack。但是消耗了偏移量= 21的其他消息并且恢复了。我怎么才能重播20个?
我是否需要将消息发送到DLQ并再次使用?如果发生故障怎么办?
我对保证交付感到困惑。
答案 0 :(得分:4)
如果使用组管理,kafka分配分区,则不会发生 - 分区仅分配给一个线程。如果你有更多的线程,它们每个都使用不同的分区,每个分区都有自己的偏移量。
答案 1 :(得分:0)
在你的情况下,你的最新承诺抵消是21.而Kafka假设你的20也承诺。因此,当您重新启动时,它将从偏移21开始。是的。我记得加里提到你要么需要在20点停止容器,要么将20点放到其他主题上以供日后回复。