是否可以使用DSL流处理器中主题A到B的自定义标头转发传入消息?
我注意到主题A中的所有输入消息都包含自定义标头,但是当我将它们放入主题B时,流处理器会吞下所有标头。
我使用stream.to(outputTopic);
方法处理邮件。
我找到了这个仍然开放的任务。 https://issues.apache.org/jira/browse/KAFKA-5632?src=confmacro
答案 0 :(得分:0)
你的观察是正确的。在Kafka 1.1之前,Kafka Streams会删除记录标题。
在(即将发布的)Kafka 2.0中添加了记录头支持,允许使用Processor API读取和修改头(参见https://issues.apache.org/jira/browse/KAFKA-6850)。使用KAFKA-6850,如果使用DSL,记录标题也将被保留(即自动转发)。
上述问题KAFKA-5632是关于DSL级别的标题操作,但在Kafka 2.0中仍然不支持。
要使用Kafka 2.0中的DSL操作标头,您可以使用KStream#transformValues()
,#transform()
或#process()
将处理器API混合并匹配到DSL中。