KafkaTestUtils.getRecords()仅返回第一个发送的记录

时间:2018-10-31 15:52:49

标签: unit-testing spring-kafka

发送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);

使用consumer.poll()获得全部4;

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

如何调整KafkaTestUtils以返回所有记录或它是错误?

1 个答案:

答案 0 :(得分:1)

它只是返回Kafka在poll()上给我们的内容,该方法不知道要提取多少记录。

您可以多次调用它,也可以尝试设置使用者属性fetch.min.bytesfetch.max.wait.ms,以便poll()等待更多数据。

有关这些属性的更多信息,请参见the kafka documentation