可以用kafka REST代理读取二进制avro消息吗?

可以用kafka REST代理读取二进制avro消息吗?,rest,proxy,apache-kafka,avro,Rest,Proxy,Apache Kafka,Avro,我不完全理解整个avro序列化生态系统是如何构建的 最初我是这样想的: 然而,我试图将一条二进制avro消息发布到一个主题,然后使用REST代理读取它,结果出现了一个错误:{“error_code”:50002,“message:“Kafka error:java.io.CharConversionException:char#1,byte#7”处的无效UTF-32字符0xa126572(高于10ffff)} 我错在哪里 如果有必要的话,我使用示例from来编写,from来阅读。使用Kafka命

我不完全理解整个avro序列化生态系统是如何构建的

最初我是这样想的: 然而,我试图将一条二进制avro消息发布到一个主题,然后使用REST代理读取它,结果出现了一个错误:
{“error_code”:50002,“message:“Kafka error:java.io.CharConversionException:char#1,byte#7”处的无效UTF-32字符0xa126572(高于10ffff)}

我错在哪里


如果有必要的话,我使用示例from来编写,from来阅读。

使用Kafka命令行工具生成一条新的Avro消息,指向一个新主题,并将其读回:

/usr/bin/kafka avro控制台生产者
生成avro消息

/usr/bin/kafka avro控制台使用者
使用avro消息

这些工具记录在此处的快速入门中:

一旦您完成了这项工作,那么请确保您的自定义客户机与官方命令行生成程序一起工作,并确保您的自定义生成程序与官方命令行客户机一起工作


如果你把它分解成这样的小步骤,你就会确切地看到你的问题在哪里,有一个更狭隘的问题要解决。

最后,我用一个。否则一切正常。感谢@cricket_007的提示

在创建消费者时,我正在做

curl -X POST -H "Content-Type: application/vnd.kafka.v2+json" \
--data '{"name": "my_consumer_instance", "format": "json", "auto.offset.reset": "earliest"}' \
http://192.168.99.101:8082/consumers/my_json_consumer
而正确的版本是

curl -X POST -H "Content-Type: application/vnd.kafka.v2+json" \
--data '{"name": "my_consumer_instance", "format": "avro", "auto.offset.reset": "earliest"}' \
http://192.168.99.101:8082/consumers/my_json_consumer

这是如何回答REST代理的?您设置了哪些内容头?明亮的我现在得到了{“error_code”:406,“message”:“HTTP 406 Not Acceptable”},但我会看看我能在那里做些什么……与以前使用的格式相比,您可能希望使用格式所需的适当代码更新您的答案