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

如何为监听同一主题的两个Spring Kafka监听器配置独立重试与死信主题

Spring Kafka 多监听器独立配置重试/死信主题问题

我在Spring Kafka中配置了两个监听同一主题payment-topic的Kafka监听器,希望它们各自拥有独立的重试主题和死信主题——这样当其中一个监听器处理消息失败时,消息不会被重发给另一个监听器。但目前的配置下,两个监听器共用了相同的重试和死信主题:

  • payment-topic
  • payment-topic-retry
  • payment-topic-dlt

当前代码配置如下:

class PaymentListener {
    
    @KafkaListener(topics = ["payment-topic"])
    fun sendBill(payment: Payment) {
        // ...业务逻辑
    }

    @KafkaListener(topics = ["payment-topic"])
    fun adjustBalance(payment: Payment) {
        // ...业务逻辑
    }
}

@Bean
fun paymentTopicRetryStrategy(
    template: KafkaTemplate<String, ClearingFinishedEvent>,
): RetryTopicConfiguration {
    return RetryTopicConfigurationBuilder
        .newInstance()
        .useSingleTopicForSameIntervals()
        .fixedBackOff(3000)
        .maxAttempts(3)
        .includeTopic("payment-topic")
        .dltProcessingFailureStrategy(DltStrategy.ALWAYS_RETRY_ON_ERROR)
        .autoCreateTopics(true, 1, BROKER_DEFAULT)
        .create(template)
}

我的实际需求是:

  • 共同监听的主题:payment-topic

sendBill监听器使用专属的重试和死信主题

  • send-bill-payment-topic-retry
  • send-bill-payment-topic-dlt

adjustBalance监听器使用专属的重试和死信主题

  • adjust-balance-payment-topic-retry
  • adjust-balance-payment-topic-dlt

我原本尝试过自定义命名策略,但无法获取到监听器的详细信息,没法实现针对性的配置。请问有什么可行的解决思路吗?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 01:46:11