如何将自定义标头值添加到 spring kafka 消息?

Blu*_*tar 0 java apache-kafka spring-boot spring-kafka

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

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

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

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

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

无论如何我可以做到这一点吗?如果可能的话,我很感激你能分享一个例子。

Art*_*lan 5

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

所以,现在您可以使用已填充的KafkaTemplate发送。ProducerRecordheaders

或者,您可以发送一个Message并依赖默认的MessagingMessageConverterwho 通过 将消息的标头重新映射到记录KafkaHeaderMapper

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