使用kafka作为生产者和消费者方之间的中间件的消费者方应用程序中未收到标头

时间:2019-05-08 08:09:38

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

我们已经实现了一个应用程序来生成消息和标头,并将其发送到kafka主题。消费者方应用程序正在收听该kafka主题。消费者方应用程序可以接收有效载荷,但不接收标头。为了禁止将标头(包括contentType)嵌入有效负载,我们使用了

spring.cloud.stream.bindings.output.producer.headerMode =原始 spring.cloud.stream.bindings.input.consumer.headerMode =原始

但是我们不能在用户端应用程序中接收标头。我们如何接收这些标头? 我们正在将 spring-cloud-starter-stream-kafka 依赖项与版本 2.0.1.RELEASE

一起使用

生产者属性:

spring: cloud: stream: kafka: binder: headers: custom-header, source-timestamp configuration: key: deserializer: org.apache.kafka.common.serialization.StringDeserializer serializer: org.apache.kafka.common.serialization.StringSerializer value: deserializer: org.apache.kafka.common.serialization.StringDeserializer serializer: org.apache.kafka.common.serialization.StringSerializer bindings: output: destination: customDestination contentType: application/json producer: headerMode: raw

消费者属性:

spring: cloud: stream: kafka: binder: headers: axon-message-type, source-timestamp configuration: key: deserializer: org.apache.kafka.common.serialization.StringDeserializer value: deserializer: org.apache.kafka.common.serialization.StringDeserializer bindings: input: destination: customDestination content-type: application/json consumer: headerMode: raw

1 个答案:

答案 0 :(得分:0)

HeaderMode.raw表示不发送标题;不推荐使用none

现在默认值为HeaderMode.headers,因此请删除标题模式或使用headers