是什么导致了额外的标题,当推动从春季云流到aws驱势



示例:我正在推动像这样的输出流

Message<String> message = MessageBuilder.withPayload(MY-STRING).build();
processor.output().send(message);

然后它进入Kinesis流,最终从Firehose进入S3。当我在文件中查看时,它们有以下标题信息:

<FF>^A^KcontentType^@^@^@^Z"text/plain;charset=UTF-8 MY-STRING

这似乎很奇怪,因为我们有一些基于Python的生产者,他们都没有添加这样的标题——只有文本。

是什么导致了这种行为?有关闭它的设置吗?我们只需要文本字符串。

将生产者headerMode设置为none

https://docs.spring.io/spring-cloud-stream/docs/3.1.2/reference/html/spring-cloud-stream.html#_producer_properties

headerMode

设置为none时,将禁用输出中的标头嵌入。它只对本机不支持消息头并且需要嵌入头的消息中间件有效。当不支持本机标头时,此选项在为非Spring Cloud Stream应用程序生成数据时非常有用。当设置为headers时,它使用中间件的本地头机制。当设置为embeddedHeaders时,它会将标头嵌入到消息有效负载中。

默认值:取决于绑定器实现。

似乎embeddedHeaders是该绑定器的默认值。。。

https://github.com/spring-cloud/spring-cloud-stream-binder-aws-kinesis/blob/57c926f4142feed545224ce3a244d9c20e2b6287/spring-cloud-stream-binder-kinesis/src/main/java/org/springframework/cloud/stream/binder/kinesis/provisioning/KinesisStreamProvisioner.java#L88-L90

最新更新