Не удается добавить новую схему в Кафку после удаления старой

#apache-kafka #confluent-schema-registry

Вопрос:

Я тоже пытаюсь использовать правильную схему для ключей. По умолчанию он создается как:

 {"subject":"AVROTEST-key","version":1,"id":60,"schema":""string""}  

Но я хочу, чтобы это было так:

 {"subject":"AVROTEST-key","version":1,"id":60,"schema": "{"type":"record","name":"AVROTEST","fields":[{"name":"key","type":"long"}]}"}  

Из-за проблем с совместимостью я попытался полностью удалить его и добавить новый. Я удалил его, используя

 curl -X DELETE http://XXXXXX.XXXXXX:1234/subjects/AVROTEST-key/versions/1  

других версий нет, и я получаю ошибку 404, когда пытаюсь получить ее после удаления, что означает, что она успешно удалена. Но когда я пытаюсь зарегистрировать новую схему, я получаю эту ошибку:

«код ошибки»:409,»сообщение»:»Регистрируемая схема несовместима с предыдущей схемой»

Как это может быть несовместимо с более ранней схемой, если схемы нет? Что я упускаю?

Вот как я регистрирую новую схему:

 curl -X POST -H "Content-Type: application/vnd.schemaregistry.v1 json" --data '{"schema": "{"type":"record","name":"AVROTEST","fields":[{"name":XXXXXX.XXXXXXXX:1234/subjects/AVROTEST-key/versions  

Комментарии:

1. 1) Какую версию реестра вы используете? 2) Расскажите нам больше о самой ИНТЕРЕСНОЙ теме. Есть ли продюсер, активно пишущий ему? Почему вы не можете изменить название темы? Вам следует изменить имя темы, так как вы аннулируете все существующие записи в теме, если вы не очистили тему иным способом.

Ответ №1:

Похоже, была еще одна версия схемы, о которой я не знал. Забавная ошибка на самом деле, я должен был удалить все версии, а не [1]. Итак, вводим команду

 curl -X DELETE http://XXXXXX.XXXXXX:1234/subjects/AVROTEST-key/versions/  

решил мою проблему. Все предыдущие схемы удаляются. Но обратите внимание, что новая схема не будет зарегистрирована как версия [1]. Это увеличит последний идентификатор схемы.