我不完全理解整个avro序列化生态系统是如何构建的。
最初我是这样想的:
但是,我尝试将二进制avro消息发布到主题,然后使用rest代理读取该消息,但出现了一个错误: {"error_code":50002,"message":"Kafka error: java.io.CharConversionException: Invalid UTF-32 character 0xa126572(above 10ffff) at char #1, byte #7)"}
.
我错在哪里?
如果有关系的话,我从这里用例子来写,从这里来读。
2条答案
按热度按时间a64a0gku1#
使用kafka命令行工具为新主题生成新的avro消息并将其读回:
/usr/bin/kafka-avro-console-producer
生成avro消息。/usr/bin/kafka-avro-console-consumer
使用avro消息。这些工具记录在此处的快速入门中:https://docs.confluent.io/current/quickstart.html
一旦你有工作,然后确保你的自定义客户机与官方命令行生产者的工作,并确保你的自定义生产者与官方命令行客户端的工作。
如果你像那样把它分成几个小步骤,你就会知道你的问题在哪里,有一个更窄的问题要解决。
myzjeezk2#
最后发现我用错误的格式(json而不是avro)定义了consumer。否则一切正常。感谢@cricket\u007的提示。
在创建我正在做的消费者时
而正确的版本是