Я пишу вам это сообщение, потому что у меня возникла ошибка десериализации при использовании темы Kafka, созданной io.confluent.kafka.serializers.KafkaAvroDeserializer.java.
Ниже приведены соответствующие версии, используемые в моем проекте Spring JAVA:
Код: Выделить всё
org.apache.avro
avro
1.10.1
io.confluent
kafka-avro-serializer
7.2.1
Проблема< /h1>
Ошибка:
Вызвана: org.apache.avro.AvroTypeException: найдена строка, ожидающая объединения
в org.apache.avro.io.ResolveDecoder.doAction(ResolveDecoder.java:308)
на org.apache.avro.io.parsing.Parser.advance(Parser.java:86)
на org. apache.avro.io.ResolveDecoder.readIndex(ResolveDecoder.java:275)
at org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:187)
В сообщении, отправленном в тему, все поля содержат непустая строка.
Соратник предложил добавить default:"" в каждое определение поля.
Код: Выделить всё
{
"name": "namespace_Fld1",
"type": [
"string",
"null"
],
"default": ""
},
Может быть разница в схеме писателя
Код: Выделить всё
{"type":"record",
"name":"myClassName",
"namespace":"fr.laposte.bdl.bscc.myClassName",
"fields":
[
{"name":"namespace_Fld1",
"type":["string","null"]},
{"name":"namespace_Fld2",
"type":["string","null"]},
{"name":"namespace_Fld3",
"type":["string","null"]},
{"name":"namespace_Fld4",
"type":["string","null"]},
{"name":"namespace_Fld5",
"type":["string","null"]},
{"name":"namespace_Fld6",
"type":["string","null"]},
{"name":"namespace_Fld7",
"type":["string","null"]},
{"name":"namespace_Fld8",
"type":["string","null"]},
{"name":"namespace_Fld9",
"type":["string","null"]}
],
"default":null
}
Код: Выделить всё
"type": "record",
"name": "myClassName",
"namespace": "fr.laposte.bdl.bscc.myClassName",
"fields": [
{
"name": "namespace_Fld4",
"type": [
"string",
"null"
]
},
{
"name": "namespace_Fld5",
"type": [
"string",
"null"
]
},
{
"name": "namespace_Fld7",
"type": [
"int",
"null"
]
},
{
"name": "namespace_Fld8",
"type": [
"string",
"null"
]
}
]
}
Здесь я прочитал, что это может быть важно: https://avro.apache.org/docs/1.8.2 /spec.html#binary_encode_complex
Кроме того, предыдущие версии схемы были опубликованы, а затем удалены командой, которая отправила мне сообщение.
Вопросы< /h1>
- Нужно ли каким-либо образом обновлять схему моего читателя?
- Может ли возникнуть проблема с Avro кэш?
- Нужно ли что-то сделать с моей схемой чтения AVRO?
- https://dzone.com/articles/kafka-avro-s ... a-registry
- https:// blog.knoldus.com/error-registering-avro-schema-multiple-schemas-in-one-topic/#schema-compatibility-in-kafka
Подробнее здесь: https://stackoverflow.com/questions/792 ... ka-message
Мобильная версия