【问题标题】:How to add custom header values to a spring kafka message?如何将自定义标头值添加到 spring kafka 消息?
【发布时间】:2018-08-02 14:58:53
【问题描述】:

我是 springboot kafka 的新手,我在这篇文章之后创建了一个示例。

https://www.codenotfound.com/spring-kafka-boot-example.html

我目前使用的是 spring.kafka.version 1.1.6

我想在消息中添加自定义标头,以便我可以在标头中发送某些属性,例如:fileName、fileId

我发现您可以将 kafka 元数据设置为标头,但这不符合我的目的。

无论如何我可以做到这一点吗?如果可能的话,如果您能分享一个示例,我将不胜感激。

【问题讨论】:

    标签: java spring-boot apache-kafka spring-kafka


    【解决方案1】:

    1.3版本开始,Spring Kafka基于Apache Kafka > 0.11,引入了headers:https://issues.apache.org/jira/browse/KAFKA-4208

    所以,现在您可以使用KafkaTemplate 发送ProducerRecord 并填充headers

    或者您可以发送Message 并依赖默认的MessagingMessageConverter,后者通过KafkaHeaderMapper 将邮件标头重新映射到记录。

    在参考手册中查看更多信息:https://docs.spring.io/spring-kafka/docs/2.1.2.RELEASE/reference/html/_reference.html#headers

    【讨论】:

    • 谢谢。我在 spring.kafka.version 1.1.6 这是否意味着我不能按照您描述的方式使用自定义标头?我可以使用其他替代方法吗?
    • 好吧,那很糟糕。您只能将标头与payload 一起嵌入ProducerRecord.value。不清楚是什么阻止您将所有环境升级到一切都处于良好状态的状态......
    • 只要您的 kafka 代理 >= 0.11,您就可以使用 spring-kafka 1.3.x 和 boot 1.5。
    猜你喜欢
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    相关资源
    最近更新 更多