此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring for Apache Kafka 3.3.0spring-doc.cn

指定 ListenerContainerFactory

默认情况下,RetryTopic 配置将使用 Comments 中提供的工厂,但您可以指定一个不同的工厂来创建重试主题和 dlt 侦听器容器。@KafkaListenerspring-doc.cn

对于 Comments,您可以提供工厂的 Bean 名称,使用 Bean 您可以提供 Bean 名称或实例本身。@RetryableTopicRetryTopicConfigurationspring-doc.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 开始,您可以对可重试和不可重试的主题使用相同的工厂。