簡體   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