当消息处理失败时,消费者可以将消息放回同一主题吗?

时间:2019-07-17 01:16:55

标签: apache-kafka

假设我来自kafka主题的程序使用消息之一。在处理消息期间,消费者访问一些数据库。由于xyz原因,其数据库访问失败。但是我们不必放弃这一信息。我们需要将消息寄存以备后用。在JMS中,当消息处理失败时,应用程序容器将消息放回队列。它不会丢失。在Kafka中,一旦收到偏移量增加,便会收到下一条消息。如何处理呢?

1 个答案:

答案 0 :(得分:0)

有两种方法可以实现这一目标。

  1. 将Kafka确认模式设置为manual,并在发生错误的情况下终止使用者线程而不提交偏移量(如果启用了组管理,则在触发重新平衡并轮询同一批次后将添加新使用者) )

  2. 第二种方法很简单,只有一个错误主题,并在出现任何错误的情况下将消息发布到错误主题,因此以后您可以使用它们或对其进行跟踪。