使用阵列时是否会失去Avro Schema Registry的兼容性?

时间:2019-10-29 14:31:52

标签: avro confluent-schema-registry

我正在使用具有向后兼容性选项的Confluent Avro Schema Registry。我上传了这个架构,它是数组([]括号)内的记录。该记录仅包含一个字符串字段。

curl -X POST -i -H "Content-Type: application/vnd.schemaregistry.v1+json" --data '{"schema": "[{\"type\": \"record\", \"name\": \"TestRecord\", \"namespace\": \"com.company\", \"fields\": [{\"name\": \"testname\", \"type\": \"string\"}]}]"}' http://localhost:8081/subjects/test99-value/versions

一切顺利,我收到了成功回复(200)。

现在,我要进行完整性检查,因此我删除了字符串字段,并添加了一个整数字段。绝对不应该兼容,无论向前还是向后。

curl -X POST -i -H "Content-Type: application/vnd.schemaregistry.v1+json" --data '{"schema": "[{\"type\": \"record\", \"name\": \"TestRecord\", \"namespace\": \"com.company\", \"fields\": [{\"name\": \"testname2\", \"type\": \"int\"}]}]"}' http://localhost:8081/subjects/test99-value/versions

问题是,即使这可能不正确,它也会返回成功。我在这里错过了一些非常基本的东西吗?

如果我使用不在数组内的记录来执行此操作,则会从架构注册表中得到预期的错误。

0 个答案:

没有答案