3

如果某些消息未在 kafka 中返回,会发生什么情况。可以说我正在同时使用消息。并且一位消费者无法处理偏移量 = 20 的消息并且没有发回 Ack。但是偏移量=21 的其他消息已被消耗并返回。我怎样才能只重播20?

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

我对保证交货有点困惑。

4

2 回答 2

5

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

于 2017-04-03T17:37:06.397 回答
0

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

于 2017-04-04T04:35:14.727 回答