这个版本仍在开发中,目前尚未被认为是稳定的。要使用最新稳定版本,请使用 Spring for Apache Kafka 4.0.4spring-doc.cadn.net.cn

指定监听器容器工厂

默认情况下,RetryTopic配置将使用从@KafkaListener注解提供的工厂,但您可以指定一个不同的工厂来用于创建重试主题和DLT监听器容器。spring-doc.cadn.net.cn

对于@RetryableTopic注解,您可以提供工厂的bean名称,而对于RetryTopicConfiguration bean,您可以提供bean名称或其实例本身。spring-doc.cadn.net.cn

@RetryableTopic(listenerContainerFactory = "my-retry-topic-factory")
@KafkaListener(topics = "my-annotated-topic")
public void processMessage(MyPojo message) {
    // ... message processing
}
@Bean
public RetryTopicConfiguration myRetryTopic(KafkaTemplate<Integer, MyPojo> template,
        ConcurrentKafkaListenerContainerFactory<Integer, MyPojo> factory) {
    return RetryTopicConfigurationBuilder
            .newInstance()
            .listenerFactory(factory)
            .create(template);
}

@Bean
public RetryTopicConfiguration myOtherRetryTopic(KafkaTemplate<Integer, MyPojo> template) {
    return RetryTopicConfigurationBuilder
            .newInstance()
            .listenerFactory("my-retry-topic-factory")
            .create(template);
}
自 2.8.3 版本起,您可以使用相同的工厂来创建可重试和不可重试主题。