如何仅使用春季云流发送自定义标头

问题描述 投票:0回答:1

我必须在kafka消息中设置自定义标头,我的kafka集群本身支持标头(1.x.x)。我当前正在使用springCloudVersion = Finchley.RELEASE。

当我设置属性时

default:
    producer:
      headerMode: none

输出中没有标题。

另一方面,如果我要设置

default:
    producer:
      headerMode: headers

包括contentTypespring_json_header_types的许多标头进入标头,这极大地影响了吞吐量。我觉得Kafka是一种与语言/框架无关的消息传递机制,Spring应该提供一种仅包含用户提供的标头的方法。是否有任何变通办法,只获得用户设置的kafka主题标头,同时取消所有与spring cloud相关的标头。

apache-kafka spring-cloud spring-kafka spring-cloud-stream spring-cloud-stream-binder-kafka
1个回答
0
投票

我已经在GitHub上回答了这个问题。在多个地方问相同的问题很浪费您和我们的时间。就像我在那儿所说的那样,Stack Overflow是问问题的首选位置。

再次是答案:

请使用堆栈溢出来提问; GitHub问题用于报告错误或要求新功能。

您可以在binder configuration中提供自定义标题映射器。

spring.cloud.stream.kafka.binder.headerMapperBeanName

KafkaHeaderMapper的bean名称,用于在spring消息头和kafka头之间进行映射。例如,如果您希望在使用JSON反序列化头的DefaultKafkaHeaderMapper中自定义受信任的程序包,则使用此方法。

默认:无。

实施您自己的KafkaHeaderMapper并将其添加为@Bean并配置活页夹以使用它。

© www.soinside.com 2019 - 2024. All rights reserved.