【发布时间】:2019-03-27 10:13:41
【问题描述】:
我有一个非常简单的用例。我有一个 Kafka 消费者,我想将所有无效或部分消息移动到死信队列。文档中的示例使用SeekToCurrentErrorHandler 并附加DeadLetterPublishingRecoverer。就我而言,我不想重试这些无效消息,并且我已将 maxFailures 设置为 1(我也尝试了 0,结果相同)。这里的问题是,由于某种原因,SeekToCurrentErrorHandler 每次我收到无效消息时都会寻找分区,即使我只想将其移动到 DLT,这使得整个过程非常缓慢。我不确定这是来自SeekToCurrentErrorHandler 的正确行为,但是如果没有SeekToCurrentErrorHandler,还有更好的方法来实现我的目标吗?我必须创建自定义ErrorHandler 吗?
附言
SeekToCurrentErrorHandler 的奇怪行为是在有更多无效消息时观察到的,然后消费者可以缓冲。如果消息很少,一切都很快,但是当我们有大量无效消息时,它的表现就很糟糕。
【问题讨论】:
标签: spring apache-kafka spring-kafka