Kafka Consumer在单元测试中读取的记录不止一个

时间:2019-07-22 17:41:04

标签: apache-kafka kafka-consumer-api

我有一个卡夫卡消费者:

consumer.subscribe(statusTopicList);
        try {
                ConsumerRecords<String, String> consumerRecords =
                    consumer.poll(Duration.ofSeconds(60));

                System.out.println("SIZE IS: " + consumerRecords());
                for (ConsumerRecord<String, String > record : consumerRecords) {

                   System.out.println(“Record is: “ + record.value());
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            consumer.close();
        }

在我的单元测试中:

 ((MockConsumer<String, String>) consumer)
        .addRecord(new ConsumerRecord<>(
            topic, 1, 0, "test-application1", record1));

    ((MockConsumer<String, String >) consumer)
        .addRecord( new ConsumerRecord<>(
            topic, 1, 0, "test-application2", record2));

尽管我要添加2条记录,但consumerRecords的大小仍为1。如何在一次民意测验中阅读两条消息?

我的消费者属性是:

  private static Consumer<String, SecondaryJoinStatus> createStatusConsumer() {

        Properties props = new Properties();

        props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG,
                bootstrapServers);
        props.put(ConsumerConfig.GROUP_ID_CONFIG,
                groupId);
        props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG,
                StringDeserializer.class);
        props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG,
                StringDeserializer.class);
        props.put("schema.registry.url",
                schemaRegistryUrl);
        props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG,
                “EARLIEST");
        props.put("max.partition.fetch.bytes", 5242880);

        return new KafkaConsumer<>(props);
    }

1 个答案:

答案 0 :(得分:0)

使用//*[@id="gigya-login-form"]/div[2]/div[3]/div[1]/input配置来轮询更多记录here

MAX_POLL_RECORDS_CONFIG