如何从 spring 云流应用程序启动源生成的 kafka 消息中删除内容类型 header

How to remove the content type header from kafka messages produced by the spring cloud stream app starter sources

对于 twitter 源,如果我们使用 @StreamListener(接收器)以外的自定义 kafka 消费者,它会为每个 kafka 消息创建一个 30 位 header。 @StreamListener 将消息正确发送到带注释的方法(没有 header)。问题是每个来源的 header 大小都不同。 那么,自从我使用自定义 kafka 消费者以来,我如何动态理解消息的 header 大小? 或者如何删除每条消息的 header。?

更新:-

请在下面找到使用 TCP 源时在 kafka-console-consumer 中收到的消息。

�
  contentType"application/octet-stream"hello world

我只需要收到消息而已。在这种情况下,你好世界

您使用的是什么版本的 Kafka?我问的原因是从 0.11 Kafka 开始支持原生 headers 并且你不会再有这个问题了。

在源中设置 spring.cloud.stream.default.producer.headerMode=raw 将在读取消费者中的消息时删除 header。

也可以更改此设置以删除烦人的 header

spring.cloud.stream.default.producer.useNativeEncoding=true