Объект схемы Avro универсальный тип KafkaTemplate — сообщение о создании

#java #apache-kafka #avro #kafka-producer-api

Вопрос:

У меня есть ситуация, когда мой шаблон кафки выглядит так:

 KafkaTemplate<String, InternalSelfServiceData> kafkaTemplate;
 

Где: InternalSelfServiceData -> объект схемы Avro

Когда я вызываю kafkaTemplate.send() свой тип возврата, это ListenableFuture<SendResult<String, InternalSelfServiceData>> . Затем я передаю эти данные в качестве параметра следующему методу, но я хочу, чтобы этот метод был универсальным, поэтому я хотел, чтобы они приняли такой параметр ListenableFuture<SendResult<String, ? extends SpecificRecordBase>> .

Ошибка, возникающая в IntelliJ, заключается в:

Необходимый тип: ListenableFuture <SendResult<Строка, ? расширяет базу данных Specificrecord><Строка, ? расширяет базу данных Specificrecord > >

При условии: ListenableFuture <SendResult<Строка, internalservicedata>

Есть предположения, чего мне не хватает?

Ответ №1:

Попробуйте закодировать свои данные в bytearray (org.apache.avro.specific.SpecificDatumWriter)

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

1. Вы можете показать мне пример, связанный с вопросом, который я задал? Я имею в виду использование SpecificDatumWriter с сохранением KafkaTemplate и возможностью прослушивания?

2. Я столкнулся с проблемой несоответствия предоставленного и требуемого типа при отправке данных в очередь, поэтому использовал класс Writer для кодирования и отправки в виде массива байтов