Kafka DSL流吞下自定义标头

时间:2018-05-28 10:56:31

标签: apache-kafka apache-kafka-streams

是否可以使用DSL流处理器中主题A到B的自定义标头转发传入消息?

我注意到主题A中的所有输入消息都包含自定义标头,但是当我将它们放入主题B时,流处理器会吞下所有标头。

我使用stream.to(outputTopic);方法处理邮件。

我找到了这个仍然开放的任务。 https://issues.apache.org/jira/browse/KAFKA-5632?src=confmacro

1 个答案:

答案 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中。