Я использую схему Avro для записи данных в тему Kafka. Изначально все работало нормально. После добавления еще одного нового поля (scan_app_id) в файл avro. Я столкнулся с этой ошибкой.
Файл Avro: {
"type": "record", "name": "Initiate_Scan", "namespace": "avro", "doc": "Реестр схемы Avro для Initiate_Scan", "fields": [{"name": "app_id", "тип": "строка", "документ": "трехзначный идентификатор приложения"},
{ "name": "app_name", "type": "string", "doc": "application name" }, { "name": "dev_stage", "type": "string", "doc": "development stage" }, { "name": "scan_app_id", "type": "string", "doc": "unique scan id for an app in Veracode" }, { "name": "scan_name", "type": "string", "doc": "scan details" }, { "name": "seq_num", "type": "int", "doc": "unique number" }, { "name": "result_flg", "type": "string", "doc": "Y indicates results of scan available", "default": "Y" }, { "name": "request_id", "type": "int", "doc": "unique id" }, { "name": "scan_number", "type": "int", "doc": "number of scans" } ] }
Ошибка: вызвана: org.apache.kafka.common.errors.SerializationException: ошибка регистрации схемы Avro: {"type": "record", "name": "Initiate_Scan", "namespace": "avro", "doc" : "Реестр схемы Avro для Initiate_Scan", "fields": [{"name": "app_id", "type": {"type": "string", "avro.java.string": "String"}, " doc ":" трехзначный идентификатор приложения "}, {" name ":" app_name "," type ": {" type ":" string "," avro.java.string ":" String "}," doc ": "application name"}, {"name": "dev_stage", "type": {"type": "string", "avro.java.string": "String"}, "doc": "этап разработки"} , {"name": "scan_app_id", "type": {"type": "string", "avro.java.string": "String"}, "doc": "уникальный идентификатор сканирования для приложения "}, {" name ":" scan_name "," type ": {" type ":" string "," avro.java.string ":" String "}," doc ":" детали сканирования " }, {"name": "seq_num", "type": "int", "doc": "уникальный номер"}, {"name": "result_flg", "type": {"type": "string" , "avro.java.string": "String"}, "doc": "Y указывает на доступные результаты сканирования", "default": "Y"}, {"name": "request_id", "type": " int "," делать c ":" уникальный идентификатор "}, {" name ":" scan_number "," type ":" int "," doc ":" количество сканирований "}]}
ИНФОРМАЦИЯ Закрытие производителя Kafka с таймаутом Миллис = 9223372036854775807 мс. (org.apache.kafka.clients.producer.KafkaProducer: 1017) Причина: io.confluent.kafka.schemaregistry.client.rest.exceptions.RestClientException: время операции регистрации истекло; код ошибки: 50002 в io.confluent.kafka.schemaregistry.client.rest.RestService.sendHttpRequest (RestService.java:182) в io.confluent.kafka.schemaregistry.client.rest.RestService.httpRequest.java: RestService.httpRequest.java: в io.confluent.kafka.schemaregistry.client.rest.RestService.registerSchema (RestService.java:292) в io.confluent.kafka.schemaregistry.client.rest.RestService.registerSchema (RestService.java.conflux: 284) .kafka.schemaregistry.client.rest.RestService.registerSchema (RestService.java:279) в io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient.registerAndGetId (CachedSchemaRegistryClient.registerAndGetId (CachedSchemaRegistryClient.registerAndGetId (CachedSchemaRegistryClient.registerAndGetId) (CachedSchemaRegistryClient). .CachedSchemaRegistryClient.register (CachedSchemaRegistryClient.java:93) в io.confluent.kafka.serializers.AbstractKafkaAvroSerializer.serializeImpl (AbstractKafkaAvroSerializer.java:72) at io.confluizer.AvroSerializer. org.a pache.kafka.common.serialization.ExtendedSerializer $ Wrapper.serialize (ExtendedSerializer.java:65) в org.apache.kafka.common.serialization.ExtendedSerializer $ Wrapper.serialize (ExtendedSerializer.java:55) в org.apache.kafka. clients.producer.KafkaProducer.doSend (KafkaProducer.java:768) по адресу org.apache.kafka.clients.producer.KafkaProducer.send (KafkaProducer.java:745) по адресу com.ssc.svc.svds.initiate.InitiateScroducerData.initiate InitiateProducer.java:146) в com.ssc.svc.svds.initiate.InitiateProducer.topicsData (InitiateProducer.java:41) в com.ssc.svc.svds.initiate.InputData.main (InputData.java:31)
Я просмотрел документацию Confluent об ошибке 50002, в которой говорится
Схема должна быть совместима с ранее зарегистрированной схемой.
Означает ли это, что я не могу вносить изменения / обновлять существующую схему?
Как это исправить?