You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Kafka 2.8.8:多消费者非阻塞重试出现消息串流,是配置错误吗?

问题:Spring Kafka 2.8.8 多消费者独立重试主题消息串流问题

场景说明

  • 基于Spring Kafka 2.8.8开发
  • 两个消费者监听同一主主题,各自配置独立消费组,通过@RetryableTopic注解实现非阻塞重试机制
  • 每个消费者对应生成3个重试主题,所有重试主题均配置独立消费组

消费者代码实现

第一个消费者

@KafkaListener(
    topics = "topic",
    containerFactory = "containerFactory-one",
    groupId = "group-one"
)
@RetryableTopic(
    attempts = "3",
    backoff = @Backoff(delay = 30000,
        multiplierExpression = 2.0 , maxDelay = 600000),
    listenerContainerFactory = "containerFactory-one",
    kafkaTemplate = "template-one",
    retryTopicSuffix = "-one-retry",
    dltTopicSuffix = "-one-dlt",
    topicSuffixingStrategy = TopicSuffixingStrategy.SUFFIX_WITH_INDEX_VALUE
)

第二个消费者

@KafkaListener(
    topics = "topic",
    containerFactory = "containerFactory-two",
    groupId = "group-two"
)
@RetryableTopic(
    attempts = "3",
    backoff = @Backoff(delay = 30000,
        multiplierExpression = 2.0 , maxDelay = 600000),
    listenerContainerFactory = "containerFactory-two",
    kafkaTemplate = "template-two",
    retryTopicSuffix = "-two-retry",
    dltTopicSuffix = "-two-dlt",
    topicSuffixingStrategy = TopicSuffixingStrategy.SUFFIX_WITH_INDEX_VALUE
)

问题现象

第一个消费者处理消息失败后,重试消息被正常发送,但实际被第二个消费者对应的retry-0主题读取消费,出现了重试消息跨消费者串流的异常情况。

原因及解决方案

这是Spring Kafka 2.8.8版本的已知Bug,并非代码或配置错误。该问题已在Spring Kafka项目内部issue中被记录,并在3.0.0版本中完成修复。

内容的提问来源于stack exchange,提问作者cloud_7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 06:37:44