首页 > 解决方案 > 获取架构反序列化错误:字段的默认值无效

问题描述

在运行 kafka 消费者时,我收到以下错误:

Caused by: org.apache.kafka.common.errors.SerializationException: Error deserializing Avro message for id 13
Caused by: org.apache.avro.AvroTypeException: Invalid default for field key_id: "null" not a ["null",{"type":"string","avro.java.string":"String"}]
    at org.apache.avro.Schema.validateDefault(Schema.java:1512)
    at org.apache.avro.Schema.access$300(Schema.java:86)
    at org.apache.avro.Schema$Field.<init>(Schema.java:493

我的 avro 架构是这样的:

{ "name": "key_id", "type": [ "null", "string" ], "default": "null"},

我尝试了多种选择来解决这个问题,但它仍然存在。

标签: serializationapache-kafkadeserializationavroconfluent-schema-registry

解决方案


您需要设置"default": null,而不是"default":"null"

{ "name": "key_id", "type": [ "null", "string" ], "default": null},

推荐阅读