gpt4 book ai didi

apache-kafka - Kafka模式注册表在同一主题中不兼容

转载 作者:行者123 更新时间:2023-12-04 16:50:39 25 4
gpt4 key购买 nike

我正在使用Kafka模式注册表来生成/使用Kafka消息,例如,我有两个字段均为字符串类型,伪模式如下:

{"name": "test1", "type": "string"}
{"name": "test2", "type": "string"}


但是在发送和使用了一段时间后,我需要修改架构以将第二个字段更改为long类型,然后引发以下异常:

Schema being registered is incompatible with an earlier schema; error code: 409


我很困惑,如果架构注册表无法发展架构升级/更改,那么为什么我应该使用架构注册表,或者为什么要使用Avro?

最佳答案

无法在BACKWARD兼容模式下重命名字段。解决方法是,可以更改架构注册表的兼容性规则。

根据docs


架构注册表服务器可以强制执行某些兼容性规则
在主题中注册新架构时。目前,我们支持
以下兼容性规则。

向后兼容(默认):新架构向后兼容
是否可用于读取以所有先前模式编写的数据。
向后兼容性对于将数据加载到系统中很有用
Hadoop,因为人们总是可以使用以下命令查询所有版本的数据
最新架构。

前向兼容性:新模式已转发
如果所有以前的模式都可以读取以此形式写入的数据,则兼容
模式。前向兼容性对于需要
只能处理特定版本的数据,而该版本可能并不总是
最新版本。

完全兼容:完全可以使用新架构
如果向前和向后都兼容。

不兼容:新架构可以是任何架构,只要它是有效的
阿夫罗


compatibility设置为NONE应该可以解决问题。

# Update compatibility requirements globally
$ curl -X PUT -H "Content-Type: application/vnd.schemaregistry.v1+json" \
--data '{"compatibility": "NONE"}' \
http://localhost:8081/config


回应应该是

{"compatibility":"NONE"}




除非绝对必要,否则我通常不鼓励在主题上将兼容性设置为 NONE

关于apache-kafka - Kafka模式注册表在同一主题中不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49801055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com