Spring Cloud Stream 确定主题 Kafka 消息来自

Spring Cloud Stream determine topic Kafka message came from

我的@StreamListener监听spring.cloud.stream.bindings.input.destination[=22=中指定的多个Kafka主题(一共10个主题) ].

有没有办法确定主题消息来自 @StreamListener 注释方法?我不想为所有主题单独配置绑定并编写 10 个几乎相同的 StreamListeners。

参见 KafkaHeaders. RECEIVED_TOPIC 您可以在 @StreamListener 方法上指定一个单独的参数。 Spring Kafka 文档中的类似内容:

@KafkaListener(id = "qux", topicPattern = "myTopic1")
public void listen(@Payload String foo,
    @Header(KafkaHeaders.RECEIVED_MESSAGE_KEY) Integer key,
    @Header(KafkaHeaders.RECEIVED_PARTITION_ID) int partition,
    @Header(KafkaHeaders.RECEIVED_TOPIC) String topic,
    @Header(KafkaHeaders.RECEIVED_TIMESTAMP) long ts
        ) {
    ...
}

https://docs.spring.io/spring-kafka/reference/htmlsingle/#kafka-listener-annotation