kafka 将消息放回队列,可以吗?

kafka put back message to queue, is it OK?

我想知道是否可以将来自kafka消费者的消息放回队列?最佳做法是什么?

我的情况是:

我有kafka队列消息A B C,然后消费者拿走A,处理它,队列变成B C并且发生了一些不好的事情,然后我想把它放回队列。最后一个状态是 B C A。我不想重试。

谢谢。

在 kafka 中,每个分区都是一个有序的 immutable 消息序列,这些消息会不断附加到提交日志中。 It is impossible 放回失败的消息并更改失败消息的顺序。(从 ABC 到 BCA)。

一般消费者拿A第一次消费不上时,可以重试或者手动控制consumer offset不commit。 (详情可参考Manual Offset Control