|
对于最新稳定版本,请使用Spring for Apache Kafka 4.0.4! |
多个监听器,同一主题(s)
从3.0版本开始,现在可以在同一个主题上配置多个监听器。 为此,必须使用自定义主题命名来隔离重试主题。 这通过一个示例来说明会更清楚:
@RetryableTopic(...
retryTopicSuffix = "-listener1", dltTopicSuffix = "-listener1-dlt",
topicSuffixingStrategy = TopicSuffixingStrategy.SUFFIX_WITH_INDEX_VALUE)
@KafkaListener(id = "listener1", groupId = "group1", topics = TWO_LISTENERS_TOPIC, ...)
void listen1(String message, @Header(KafkaHeaders.RECEIVED_TOPIC) String receivedTopic) {
...
}
@RetryableTopic(...
retryTopicSuffix = "-listener2", dltTopicSuffix = "-listener2-dlt",
topicSuffixingStrategy = TopicSuffixingStrategy.SUFFIX_WITH_INDEX_VALUE)
@KafkaListener(id = "listener2", groupId = "group2", topics = TWO_LISTENERS_TOPIC, ...)
void listen2(String message, @Header(KafkaHeaders.RECEIVED_TOPIC) String receivedTopic) {
...
}
The topicSuffixingStrategy 是可选的。
The framework 将为每个 listener 配置和使用一组单独的重试主题。