我必须在kafka消息中设置自定义标头,我的kafka集群本身支持标头(1.x.x)。我目前正在使用springCloudVersion = Finchley.RELEASE。
设置属性时
default:
producer:
headerMode: none
输出中都没有标题。
另一方面,如果我要设置
default:
producer:
headerMode: headers
许多标头包括contentType
和spring_json_header_types
进入标头,这极大地影响了吞吐量。我觉得Kafka是一种与语言/框架无关的消息传递机制,Spring应该提供一种仅包含用户提供的标头的方法。是否有任何变通办法,只能在kafka主题上获取用户设置的标头,同时取消所有与spring cloud相关的标头。
答案 0 :(得分:1)
我已经在GitHub上回答了这个问题。在多个地方问相同的问题很浪费您和我们的时间。就像我在那儿所说的,Stack Overflow是问问题的首选。
这又是答案:
请使用Stack Overflow提出问题; GitHub问题用于报告错误或要求新功能。
您可以在binder configuration中提供自定义标头映射器。
spring.cloud.stream.kafka.binder.headerMapperBeanName
KafkaHeaderMapper的Bean名称,用于在Spring消息头和Kafka头之间进行映射。例如,如果您希望在将JSON反序列化用于标头的DefaultKafkaHeaderMapper中自定义受信任的程序包,则使用
。默认:无。
实施自己的KafkaHeaderMapper
,并将其添加为@Bean
,并配置活页夹以使用它。