Kafka 消费者端故障处理和重新交付



如果某些消息没有在 kafka 中返回会发生什么。假设我同时使用消息。一个消费者无法处理 offset=20 的消息,并且没有将 Ack 发回。但是偏移量 = 21 的其他消息已被消耗并返回。如何只重播 20 个?

我是否需要将消息放入 DLQ 并再次使用? 如果那里也发生故障怎么办?

我对保证交付有点困惑。

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

在您的情况下,您最新提交的偏移量是 21。 Kafka 假设你的 20 也承诺了。因此,当您重新启动时,它将从偏移量 21 开始。是的。我记得 Gary 提到你要么需要在 20 停止容器,要么将 20 放在其他主题以供以后回复。

最新更新