使用ConsumeKafka(NIFI)读取Avro缓冲区编码的消息

时间:2018-09-21 11:56:21

标签: apache-kafka avro apache-nifi

我不熟悉NIFI(对Kafka经验不足),并且尝试使用生产者正在生成的消息。为此,我在NIFI上使用ConsumeKafka处理器。

消息到达(我可以在队列中看到它们),但是当我检查队列并尝试查看消息时,我只能看到具有十六进制格式的内容(例如:以原始格式,我可以看到一个消息:没有为此内容类型注册查看器。

生产者发送的消息是经过编码的avro缓冲区(这是我采用的参考:https://blog.mimacom.com/apache-kafka-with-node-js/),当我从控制台检查使用者时,每条消息都具有以下格式:

02018-09-21T08:37:44.587Z      @02018-09-21T08:37:44.587Z      @

我已经阅读到处理器UpdateRecord可以帮助将十六进制代码更改为纯文本,但是我无法实现。

如何配置此UpdateRecord处理器?

Chears

1 个答案:

答案 0 :(得分:4)

  • 最好使用适合您所使用的Kafka版本的ConsumeKafka处理器,而不是ConsumeKafkaRecord并为Record Reader配置AvroReader并设置{{1 }}交给您选择的作者。
  • 完成后,您必须使用架构注册表配置Record Writer控制器服务。您可以使用AvroReader来指定在Kafka中接收的Avro消息的模式。

快速浏览本教程可以帮助您实现所需的目标:https://bryanbende.com/development/2017/06/20/apache-nifi-records-and-schema-registries