【问题标题】:Spring Cloud Stream determine topic Kafka message came fromSpring Cloud Stream 确定主题 Kafka 消息来自
【发布时间】:2018-07-18 17:32:42
【问题描述】:

我的 @StreamListener 正在监听 spring.cloud.stream.bindings.input.destination 属性中指定的多个 Kafka 主题(总共有 10 个主题)。

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

【问题讨论】:

    标签: java spring spring-cloud-stream spring-kafka


    【解决方案1】:

    参见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

    【讨论】:

    • 这就是我要找的
    猜你喜欢
    • 2022-01-06
    • 1970-01-01
    • 2017-11-20
    • 2021-06-12
    • 1970-01-01
    • 2021-07-09
    • 2021-10-13
    • 2017-02-17
    • 2021-08-20
    相关资源
    最近更新 更多