完全兼容性和传递性完全兼容性之间的区别

时间:2018-11-09 10:31:00

标签: avro confluent confluent-schema-registry

Confluent的架构注册表定义了several compatiblity levels,比Avro provides的兼容性检查要丰富。

但是,尽管我了解每个兼容性级别的定义,但我不了解哪种模式序列可以“完全兼容”但不能“完全传递兼容”。

谁能提供符合该标准的一系列模式示例?

1 个答案:

答案 0 :(得分:0)

transitive 的作用是它将检查所有以前的版本,而不是仅根据当前版本检查下一个插入的版本。

我不会说这是“更丰富”的说法(架构注册表仍在幕后使用相同的Avro兼容性方法),这是对如果您不重写该隐式传递性的一种改进。两个版本之间的配置。 (如果v2与v1兼容,则v3与v2兼容,那么您将假定v3与v1兼容)

我还没有使用FULL,但是例如,您想完全破坏该架构。您可能具有默认兼容性BACKWARD(模式v1),然后设置为NONE并推送模式(v2),然后再次推送到BACKWARD。现在,如果您推送一个新的架构(v3),则只会检查v2。

如果您在v3之前设置了传递设置,则v1和v2都将被检查。