1

我正在构建一个 Spring Cloud Stream Kafka 处理器应用程序,该应用程序将使用带有字符串键的原始数据,有时还会使用来自 Kafka 主题的空负载。我想为另一个主题生成一个字符串键和空有效负载(在 Kafka 中称为墓碑)。为了在消息上使用原始标头,我需要输出 a byte[],但如果我编码KafkaNull.INSTANCE为 a byte[],它将逐字输出对象哈希码的字符串。

如果我尝试发送除 a 以外的任何内容byte[],则无法使用原始标头。

这样做的正确方法是什么?即使有效负载为空,标头也会在哪里?我设置producer.headerMode=embeddedHeaders了部署,这似乎没有什么区别,仍然有哈希码作为有效负载。

4

1 回答 1

1

您可以使用后者引入的useNativeEncoding属性(与跳过标头的属性重叠raw headerMode),但允许您使用本机 Kafka 序列化程序。

请参阅http://docs.spring.io/autorepo/docs/spring-cloud-stream-docs/Brooklyn.BUILD-SNAPSHOT/reference/htmlsingle/#_producer_propertieshttp://docs.spring.io/autorepo/docs/ spring-cloud-stream-docs/Chelsea.BUILD-SNAPSHOT/reference/htmlsingle/#_producer_properties

于 2017-03-22T19:02:02.237 回答