Spring boot 为什么Spring集成中的时间戳和ID头在Spring Kafka中没有映射?

Spring boot 为什么Spring集成中的时间戳和ID头在Spring Kafka中没有映射?,spring-boot,spring-integration,spring-kafka,spring-cloud-stream,Spring Boot,Spring Integration,Spring Kafka,Spring Cloud Stream,测试失败的示例项目位于 我感到奇怪的是,Spring Integration中的ID和TIMESTAMP头被删除,因为它们不能用于接收消息。这是虫子吗 我遇到了一个相关的问题,其中提到了一些关于这些头是暂时的,这使我认为这种行为是故意的。为什么它们是暂时的?为什么这些不就像其他所有正确映射的自定义头一样?特殊处理是否有特殊原因?这是出于性能原因,在某些高容量情况下,id和时间戳的生成可能会影响性能 您可以使用standardHeaders更改行为: 标准标题 指示入站通道适配器填充的标准标头。允

测试失败的示例项目位于

我感到奇怪的是,Spring Integration中的
ID
TIMESTAMP
头被删除,因为它们不能用于接收消息。这是虫子吗


我遇到了一个相关的问题,其中提到了一些关于这些头是暂时的,这使我认为这种行为是故意的。为什么它们是暂时的?为什么这些不就像其他所有正确映射的自定义头一样?特殊处理是否有特殊原因?

这是出于性能原因,在某些高容量情况下,id和时间戳的生成可能会影响性能

您可以使用
standardHeaders
更改行为:

标准标题

指示入站通道适配器填充的标准标头。允许的值:
none
id
时间戳
,或
两者都
。如果使用本机反序列化且接收消息的第一个组件需要id(例如配置为使用JDBC消息存储的聚合器),则此选项非常有用

默认值:无


这样做是出于性能原因,在某些高容量情况下,id和时间戳的生成可能会影响性能

您可以使用
standardHeaders
更改行为:

标准标题

指示入站通道适配器填充的标准标头。允许的值:
none
id
时间戳
,或
两者都
。如果使用本机反序列化且接收消息的第一个组件需要id(例如配置为使用JDBC消息存储的聚合器),则此选项非常有用

默认值:无


谢谢你的回复。根据我对该文档的阅读并找到实际绑定:我希望设置属性
spring.cloud.stream.kafka.default.standard headers=both
会导致映射这些属性。这就是你希望发生的事吗?想出来了。它绑定到
KafkaExtendedBindingProperties
,该属性具有
使用者
,其中需要设置
标准头
。这个完整的属性是有效的:
spring.cloud.stream.kafka.default.consumer.standard headers=both
在添加了一个PR,以修复响应的属性docsThanks。根据我对该文档的阅读并找到实际绑定:我希望设置属性
spring.cloud.stream.kafka.default.standard headers=both
会导致映射这些属性。这就是你希望发生的事吗?想出来了。它绑定到
KafkaExtendedBindingProperties
,该属性具有
使用者
,其中需要设置
标准头
。这个完整的属性是有效的:
spring.cloud.stream.kafka.default.consumer.standard headers=both
在添加了一个PR来修复属性文档