【发布时间】:2020-04-11 08:09:31
【问题描述】:
我遇到了 Avro 和 Schema Registry 的问题。在 Debezium 创建了模式和主题后,我从 Schema Registry 下载了模式。我把它放到一个 .asvc 文件中,它看起来像这样:
{
"type": "record",
"name": "Envelope",
"namespace": "my.namespace",
"fields": [
{
"name": "before",
"type": [
"null",
{
"type": "record",
"name": "MyValue",
"fields": [
{
"name": "id",
"type": "int"
}
]
}
],
"default": null
},
{
"name": "after",
"type": [
"null",
"MyValue"
],
"default": null
}
]
}
我做了两个实验:
我尝试将其放回架构注册表,但出现此错误:MyValue 不正确。当我删除“之后”记录时,架构似乎运行良好。
-
我使用 avro-maven-plugin 中的“generate-sources”来生成 Java 类。当我尝试使用上面的主题时,我看到了这个错误:
线程“b2-StreamThread-1”org.apache.kafka.streams.errors.StreamsException 中的异常:在进程中捕获异常。 [...]:注册 Avro 架构时出错:[...]
原因:io.confluent.kafka.schemaregistry.client.rest.exceptions.RestClientException:正在注册的模式与早期的模式不兼容;错误代码:409
有人遇到过同样的问题吗?是 Debezium 产生了无效的模式,还是 Schema Registry 出现了错误?
【问题讨论】:
标签: apache-kafka avro confluent-schema-registry debezium