【问题标题】:How to add headers to a message before posting to Kafka Topic using Spring Cloud Stream如何在使用 Spring Cloud Stream 发布到 Kafka 主题之前向消息添加标头
【发布时间】:2020-12-26 20:33:58
【问题描述】:
我刚刚意识到在 Kafka 主题上收到的消息会丢失标题。有没有办法在将消息发布到 Kafka 主题之前向消息添加标头,然后在消费者处阅读它?
我正在使用 Java 11、Spring Cloud Hoxton.SR6、Spring 2.2.4、kafka_2.13-2.6.0。提前致谢!
【问题讨论】:
标签:
java
spring-cloud
spring-cloud-stream
spring-cloud-stream-binder-kafka
【解决方案1】:
我认为发布这个问题有点太早了。它很简单。从 HttpServletRequest 或 HttpRequest(spring) 获取请求标头,然后在写入 MessageChannel 时,在传递标头时调用 CopyHeaders 方法。你也可以跳过那些不需要的。在消费者,而不是自定义对象,获取具有所有标题的消息对象
制片人
MessageBuilder.withPayload(message).copyHeaders(headersMap).build();
消费者
processMessage(Message<?> message)