向Avro架构添加新字段使其与早期版本不兼容

时间:2020-01-08 14:41:24

标签: apache-kafka avro confluent-schema-registry

我有一个有效的Avro架构,它是:

{ 
  "namespace": "sample.avro",
  "type": "record",
  "name": "MessageStatusFeedback",
  "fields": [
    {"name": "messageId", "type": "string"},
    {"name": "messageStatus", "type": "string"},
    {"name": "messageBody", "type": "string", "default": ""}
  ]
}

我正在尝试从Kafka生产者那里接受动态JSON,为此,我将映射添加到原始模式,如下所示:

{
  "namespace": "sample.avro",
  "type": "record",
  "name": "MessageStatusFeedback",
  "fields": [
    {"name": "messageId", "type": "string"},
    {"name": "messageStatus", "type": "string"},
    {"name": "messageBody", "type": "string", "default": ""},
    {"name": "payload", "type": {"type": "map", "values": ["null", "int", "string"] }}
  ]
}

在使用相同主题(用于先前的架构)注册该架构时,出现错误:

{"error_code":409,"message":"Schema being registered is incompatible with an earlier schema"}

有人可以建议这里有什么问题吗?

谢谢。

0 个答案:

没有答案