【问题标题】:Why are the TIMESTAMP and ID headers from Spring Integration unmapped in Spring Kafka?为什么 Spring Integration 中的 TIMESTAMP 和 ID 标头在 Spring Kafka 中未映射?
【发布时间】:2019-09-17 13:06:37
【问题描述】:

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

让我感到奇怪的是,Spring Integration 中的 IDTIMESTAMP 标头已被删除,因为它们不能在收到消息时使用。这是一个错误吗?

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

【问题讨论】:

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


    【解决方案1】:

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

    您可以使用 standardHeaders consumer property 更改行为:

    标准标头

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

    默认:无

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 2012-07-14
    • 2013-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多