Apache Avro генерируется POJO - PullRequest
0 голосов
/ 31 марта 2020

Я использую Apache avro с kafka для сериализации / десериализации сообщений. Хотелось бы узнать, есть ли способ использовать avro без использования сгенерированного POJO (не очень читабельного)?

Спасибо вы.

1 Ответ

0 голосов
/ 31 марта 2020

Конечно, вы говорите о GenericRecord Авро:

final KafkaConsumer<String, GenericRecord> consumer = new KafkaConsumer<>(props);
consumer.subscribe(Collections.singletonList(topic));

while (true) {
  final ConsumerRecords<String, GenericRecord> records = consumer.poll(100);
  for (final ConsumerRecord<String, GenericRecord> record : records) {
    final GenericRecord value = record.value();
    System.out.printf("the value of userId: %s%n", record.get("userId");
  }
}

Недостатком является то, что вам придется знать и проверять наличие ключ поля, который вы используете GenericRecord#get() вкл.

...