从NIFI JSONRecordSetWriter到JSON记录的前缀是单个字母

时间:2018-12-05 14:29:59

标签: apache-kafka apache-nifi

我对NiFi和Kafka还是很陌生,并且我为这个问题苦苦挣扎了几天。我有一个NiFi数据流,该数据流的结尾是使用配置为JSONRecordSetWriter服务作为编写者的PublishKafkaRecord_2_0处理器将JSON记录发布到Kafka主题。一切似乎都运行良好:消息已发布到Kafka,并且在发布后查看流文件中的记录,看起来像格式良好的JSON。但是,当在命令行上使用消息时,我看到它们以单个字母开头。尝试使用配置了JSONTreeReader的ConsumeKafkaRecord_2_0读取消息,当然会看到错误here

由于我尝试了不同的事情,因此字母发生了变化:它以“ h”开头,然后以“ f”开头(在更远的上游配置JSONRecordSetWriter并在发布到Kafka之前),当前是“ y”。 / p>

我不知道它从哪里来。我怀疑这是由JSONRecordSetWriter引起的,但不确定。我为编写者配置的是here,对我来说似乎没什么异常。

我尝试通过创建不同的流进行调试。我认为问题可能出在我的Avro模式上,并尝试替换它。我没有尝试的余地,没有人有任何想法吗?

1 个答案:

答案 0 :(得分:1)

由于您已将“模式写入策略”设置为“融合模式引用”,这是告诉编写者在消息内容的开头写入融合模式ID参考,因此您可能看到的是字节

如果您正在使用融合式架构注册表,那么这是正确的行为,并且这些值必须在供消费方使用,以确定使用哪种架构。

如果在使用这些消息时未使用融合的架构注册表,则只需选择其他架构编写策略之一。