首页 > 解决方案 > Kafka重置分区是否重新消费

问题描述

如果我从我的主题中消费并自己管理偏移量,我处理的一些记录是成功的,然后我将偏移量向前移动,但偶尔我会处理会引发异常的记录。我仍然需要向前移动偏移量。但稍后我将需要重置偏移量并重新处理失败的记录。是否有可能在推进偏移量以设置一个标志来表示如果我再次消费该事件时忽略或消费?

标签: apache-kafkakafka-consumer-api

解决方案


处理这些记录的最佳方法不是重置偏移量,而是使用死信队列,本质上是将它们发布到另一个 kafka 主题以便稍后重新处理。这样,您的主要消费者可以专注于处理不抛出异常的记录,而其他一些消费者可以不断地监听并尝试处理抛出错误的记录。

如果第二个消费者在尝试重新处理消息时仍然抛出异常,如果异常是由暂时性问题(系统暂时不可用、数据库问题、网络故障等)引起的,您可以选择将它们重新发布到同一个队列,或者只是选择记录消息 ID 和内容,以及对问题所在的最佳猜测,以便稍后手动查看。


推荐阅读