汇流Kafka Rest代理 - Avro反序列化

问题描述 投票:0回答:1

我正在尝试使用Confluent Kafka REST代理从我的一个主题中检索Avro格式的数据,但不幸的是我收到了反序列化错误。我使用以下命令查询Kafka REST代理

 curl -X GET -H "Accept: application/vnd.kafka.avro.v2+json" 
http://localhost:8082/consumers/my-group/instances/my-consumer/records?timeout=30000

我得到了回应

{
  "error_code": 50002,
  "message": "Kafka error: Error deserializing key/value for partition input-0 at offset 0. If needed, please seek past the record to continue consumption."
}

并且Kafka Rest代理服务器上的日志是:

org.apache.kafka.common.errors.SerializationException: Error deserializing key/value for partition input-0 at offset 0. If needed, please seek past the record to continue consumption.
Caused by: org.apache.kafka.common.errors.SerializationException: Error deserializing Avro message for id -1
Caused by: org.apache.kafka.common.errors.SerializationException: Unknown magic byte!

数据是使用KafkaAvroSerializer生成的,架构存在于Schema Registry中。另请注意,在CLI上使用avro-console-consumer可以读取数据。

有人知道如何解决这个问题吗?

apache-kafka confluent kafka-rest
1个回答
0
投票

最有可能的是,关于该主题的有效Avro消息,您也有无效消息。这就是这个错误的含义,而且正是我在尝试使用REST代理在本地使用非Avro消息时得到的错误:

ERROR Unexpected exception in consumer read task id=io.confluent.kafkarest.v2.KafkaConsumerReadTask@2e20d4f3  (io.confluent.kafkarest.v2.KafkaConsumerReadTask)
org.apache.kafka.common.errors.SerializationException: Error deserializing key/value for partition avrotest-0 at offset 2. If needed, please seek past the record to continue consumption.
Caused by: org.apache.kafka.common.errors.SerializationException: Error deserializing Avro message for id -1
Caused by: org.apache.kafka.common.errors.SerializationException: Unknown magic byte!

我会使用像kafkacat这样的工具来检查错误中给出的偏移处的实际消息,例如:

kafkacat -C -b localhost:9092 -t test_topic_avro -o 0 -c 1

-o 0将使用偏移0处的消息,而-c 1表示仅使用一条消息。

你也可以seek past the problematic offset,例如主题avrotest将偏移量移至1

echo '{ "offsets": [ { "topic": "avrotest", "partition": 0, "offset": 1 } ] }' | \
http POST localhost:8082/consumers/rmoff_consumer_group/instances/rmoff_consumer_instance/positions \
Content-Type:application/vnd.kafka.v2+json
© www.soinside.com 2019 - 2024. All rights reserved.