【发布时间】:2020-07-12 01:48:31
【问题描述】:
我正在使用带有 kafka 的 Apache avro 来序列化/反序列化消息, 我想知道是否有办法在不使用生成的 POJO 的情况下使用 avro(不是很可读)?
谢谢。
【问题讨论】:
标签: spring-boot apache-kafka avro
我正在使用带有 kafka 的 Apache avro 来序列化/反序列化消息, 我想知道是否有办法在不使用生成的 POJO 的情况下使用 avro(不是很可读)?
谢谢。
【问题讨论】:
标签: spring-boot apache-kafka avro
当然,你说的是 Avro 的 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() 的字段键是否存在。
【讨论】: