java - 如何向 spring kafka 消息添加自定义 header 值?

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

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

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

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

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

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

我有办法实现这个目标吗?如果可能的话,如果您能分享一个示例,我将不胜感激。

最佳答案

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

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

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

请参阅引用手册中的更多信息:https://docs.spring.io/spring-kafka/docs/2.1.2.RELEASE/reference/html/_reference.html#headers

关于java - 如何向 spring kafka 消息添加自定义 header 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48932848/

相关文章:

java - JAXB 不为空 xs :element tag 创建类

JavaFX 播放音频时出现问题 : Unsupported protocol "file"

java - 安卓数据表

java - 在 Spring Boot REST 应用程序中处理压缩请求

maven - 不使用 Spring Boot 作为父 pom 会有什么后果?

Python Kafka消费者读取已读消息

java - 方法从类变量返回类型

java - 如何在 GET 请求中排除其他类对象? - Java Spring启动

python - JSON 列作为 kafka 生产者中的键

apache-kafka - 当 kafka 服务器关闭时,Kafka 生产者无限期地发送 block