Вы просто не можете больше использовать avro-console-consumer
(или Потребитель с десериализатором Avro) для чтения этих смещений, потому что он предполагает, что все данные в теме - это Avro, и использует Confluent's KafkaAvroDeserializer
.
Обычный console-producer
будет выдвигать строки UTF-8, не кодированные Avro, и использовать StringSerializer
, который не будет соответствовать формату провода, ожидаемому для десериализатора Avro
Единственный способ обойти их - узнать, какие смещения являются плохими, и подождать, пока истечет срок их действия в теме, или сбросить группу потребителей, чтобы они начинались после этих сообщений. Или вы всегда можете использовать ByteArrayDeserializer
и добавить набор условной логики для анализа ваших сообщений, чтобы избежать потери данных.
tl; dr Производитель и потребитель должны согласовать формат данных темы.