KafkaTestUtils.getRecords () возвращает только первую отправленную запись - PullRequest
0 голосов
/ 31 октября 2018

Отправка 4 записей:

producer.send(new ProducerRecord<>("my-topic", 0, "key1", "value1"));
producer.send(new ProducerRecord<>("my-topic", 0, "key2", "value2"));
producer.send(new ProducerRecord<>("my-topic", 0, "key3", "value3"));
producer.send(new ProducerRecord<>("my-topic", 0, "key4", "value4"));

Используя KafkaTestUtils.getRecords () получить только первую отправленную запись;

final ConsumerRecords<String, OrderBookViewItem> records = KafkaTestUtils.getRecords(consumer, 10000);

Используя customer.poll () получить все 4;

final Iterable<ConsumerRecord<String, OrderBookViewItem>> records = consumer.poll(1000).records("my-topic");

Как настроить KafkaTestUtils для возврата всех записей или это ошибка?

1 Ответ

0 голосов
/ 31 октября 2018

Он просто возвращает то, что Кафка дает нам на poll(), метод не знает, сколько записей извлечь.

Вы можете вызывать его несколько раз или попытаться установить свойства потребителя fetch.min.bytes и fetch.max.wait.ms, чтобы poll() ожидал дополнительных данных.

См. документацию kafka для получения дополнительной информации об этих свойствах.

...