У меня проблема с Avro и реестром схем. После того, как Debezium создал схему и тему, я загрузил схему из реестра схем. Я помещаю его в файл .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 неверно. Когда я удаляю запись «после», схема работает нормально.
Я использовал "generate-sources" из avro-maven-plugin для создания классов Java. Когда я пытаюсь использовать вышеупомянутую тему, я вижу такую ошибку:
Исключение в потоке «b2-StreamThread-1» org.apache.kafka.streams.errors.StreamsException: исключение перехвачено в процессе. [...]: Ошибка регистрации схемы Avro: [...]
Вызвано: io.confluent.kafka.schemaregistry.client.rest.exceptions.RestClientException: регистрируемая схема несовместима с более ранней схемой; код ошибки: 409
Кто-нибудь сталкивался с такой же проблемой? Это Debezium создает недопустимую схему или в реестре схем есть ошибка?