繁体   English   中英

Kafka Protobuf 控制台消费者序列化异常

[英]Kafka Protobuf Console Consumer Serialization Exception

我有一个关于 #protobuf #serialization 的问题,它发生在 #nodejs 和 #apache #kafka 中,由 #confluent 平台运行在一个社区中。

我使用 google protobuf 或 protobufjs 序列化数据,然后使用 kafkajs 将其发送到 kafka。 但是,当我提交数据时,kafka-protobuf-console-consumer 给我一个序列化异常。 请检查源代码并帮助我。 https://github.com/smhmayboudi/kafka-protobuf-console

org.apache.kafka.common.errors.SerializationException: Error deserializing Protobuf message for id 53
Caused by: java.lang.IllegalArgumentException: Invalid message indexes: io.confluent.kafka.schemaregistry.protobuf.MessageIndexes@59d77850
    at io.confluent.kafka.schemaregistry.protobuf.ProtobufSchema.toMessageName(ProtobufSchema.java:903)
    at io.confluent.kafka.serializers.protobuf.AbstractKafkaProtobufDeserializer.deserialize(AbstractKafkaProtobufDeserializer.java:119)
    at io.confluent.kafka.serializers.protobuf.AbstractKafkaProtobufDeserializer.deserialize(AbstractKafkaProtobufDeserializer.java:98)
    at io.confluent.kafka.formatter.protobuf.ProtobufMessageFormatter$ProtobufMessageDeserializer.deserialize(ProtobufMessageFormatter.java:130)
    at io.confluent.kafka.formatter.protobuf.ProtobufMessageFormatter$ProtobufMessageDeserializer.deserialize(ProtobufMessageFormatter.java:104)
    at io.confluent.kafka.formatter.protobuf.ProtobufMessageFormatter.writeTo(ProtobufMessageFormatter.java:88)
    at io.confluent.kafka.formatter.SchemaMessageFormatter.writeTo(SchemaMessageFormatter.java:173)
    at kafka.tools.ConsoleConsumer$.process(ConsoleConsumer.scala:118)
    at kafka.tools.ConsoleConsumer$.run(ConsoleConsumer.scala:78)
    at kafka.tools.ConsoleConsumer$.main(ConsoleConsumer.scala:55)
    at kafka.tools.ConsoleConsumer.main(ConsoleConsumer.scala)

在 Gerard Klijs 的帮助下,我通过在 confluent slack 中进行讨论找到了解决方案。 感谢 Gerard Klijs 和 Ricardo Ferreira。 另外,我更新了 git 存储库。

java 和其他语言之间的序列化器格式不同。 所以你必须遵循这种格式风格:[Magic Byte] + [Schema ID] + [Message Index Data] + [Message Payload],其中 Message Index Data 为零。

来源: https://riferrei.com/2020/07/09/data-sharing-between-java-go-using-kafka-and-protobuf/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM