Apache kafka 使用kafka Avro控制台以二进制数组形式获取Avro记录

Apache kafka 使用kafka Avro控制台以二进制数组形式获取Avro记录,apache-kafka,avro,confluent-platform,confluent-schema-registry,Apache Kafka,Avro,Confluent Platform,Confluent Schema Registry,我有一个卡夫卡制作人,他将Avro唱片发送到一个“测试”主题。我还有一个模式注册表,每个记录的模式都存储在其中 之后,我使用命令 kafka-avro-console-consumer --topic test --zookeeper localhost:2181 --from-beginning 要检索我发送的Avro记录,它会返回一个JSON输出,如下所示: {"A":"HI","B":"HELLO","C":"HEY","D":99999,"E":90,"F":"YO"} 现在的问题

我有一个卡夫卡制作人,他将Avro唱片发送到一个“测试”主题。我还有一个模式注册表,每个记录的模式都存储在其中

之后,我使用命令

kafka-avro-console-consumer --topic test --zookeeper localhost:2181  --from-beginning
要检索我发送的Avro记录,它会返回一个JSON输出,如下所示:

{"A":"HI","B":"HELLO","C":"HEY","D":99999,"E":90,"F":"YO"}
现在的问题是,我希望得到的输出不是JSON格式,而是一个字节数组,遵循Avro二进制格式

例如:

[2, 65, 2, 78, 2, 78, -66, -102, 12, -76, 1, -16, 90, 0]
是否有任何反序列化程序可用于完成此任务?我试着用

--value-deserializer io.confluent.kafka.serializers.KafkaAvroDeserializer

但它没有起作用

有什么想法吗


谢谢。

没有这样的内置反序列化程序(实际上是格式化程序)

Avro控制台使用者使用JSON格式化程序

您可以构建自己的格式化程序类,然后将其添加到Kafka控制台使用者类路径中

--formatter <String: class>              The name of a class to use for
                                           formatting kafka messages for
                                           display. (default: kafka.tools.
                                           DefaultMessageFormatter)
--格式化程序要用于
设置卡夫卡消息的格式
陈列(默认值:kafka.tools。
DefaultMessageFormatter)

只需在connect-standalone中执行此操作。属性进行一些更改

key.converter=org.apache.kafka.connect.avro.AvroConverter value.converter=org.apache.kafka.connect.avro.AvroConverter

--formatter <String: class>              The name of a class to use for
                                           formatting kafka messages for
                                           display. (default: kafka.tools.
                                           DefaultMessageFormatter)