首页 > 解决方案 > 使用 ConsumeKafka (NIFI) 读取 Avro Buffer 编码的消息

问题描述

我是 NIFI 新手(对 Kafka 没有太多经验),我正在尝试使用生产者生成的消息。为了完成这项工作,我在 NIFI 上使用了 ConsumeKafka 处理器。

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

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

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

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

如何配置此 UpdateRecord 处理器?

雪儿

标签: apache-kafkaavroapache-nifi

解决方案


  • 而不是ConsumeKafka,最好使用ConsumeKafkaRecord适合您正在使用的 Kafka 版本的处理器,并使用Record ReaderAvroReader设置Record Writer为您选择的编写器进行配置。
  • 完成后,您必须AvroReader使用 Schema 注册表配置控制器服务。您可以使用AvroSchemaRegistry为您在 Kafka 中接收的 Avro 消息指定架构的位置。

快速浏览本教程将帮助您实现您想要的:https ://bryanbende.com/development/2017/06/20/apache-nifi-records-and-schema-registries


推荐阅读