为什么 Spring Integration 中的 TIMESTAMP 和 ID 标头在 Spring Kafka 中没



测试失败的示例项目位于 https://github.com/phillipuniverse/kafka-headers-test。

对我来说很奇怪的是,Spring 集成中的IDTIMESTAMP标头被删除,因为它们不能在接收消息时使用。这是一个错误吗?

我在这里遇到了一个相关问题,其中提到了有关这些标头是瞬态的,这让我认为这种行为是故意的。为什么它们是短暂的?为什么这些不像任何其他正确映射的自定义标头一样?特殊待遇是否有特殊原因?

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

您可以使用standardHeaders使用者属性更改行为:

标准标头

指示入站通道适配器填充的标准标头。允许的值:noneidtimestampboth。如果使用本机反序列化并且接收消息的第一个组件需要 id(例如配置为使用 JDBC 消息存储库的聚合器(,则很有用。

默认值:无

最新更新