Недавно мы начали использовать Kafka, и я пишу потребительское приложение Kafka, использующее собственный API-интерфейс Kafka Java.
Однако большинство примеров, которые я видел, используют цикл while
и затем вызывают метод poll
для объекта-потребителя в цикле. Как ниже:
while (true) {
final ConsumerRecords<Long, String> consumerRecords =
consumer.poll(1000);
if (consumerRecords.count()==0) {
noRecordsCount++;
if (noRecordsCount > giveUp) break;
else continue;
}
consumerRecords.forEach(record -> {
System.out.printf("Consumer Record:(%d, %s, %d, %d)\n",
record.key(), record.value(),
record.partition(), record.offset());
});
consumer.commitAsync();
}
Я просто ищу лучший способ сделать это без цикла, используя собственный API-интерфейс пользователя Java. Я знаю, что с помощью весенней кафки вам не нужно их писать. Как насчет использования нативного API? Хороший подход или лучшая практика?