[英]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.