kafka cosumer轮询未返回低超时录制

wko9yo5t  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(375)

kafka consumer poll api未将记录返回到低超时。如果我在poll中增加超时值,那么记录就会出现。我无法理解这个逻辑。请帮助,遵循代码:

public ConsumerRecords<String, Map<String, String>> subscribeToQueue(String topic, QueueListener q) {
    Properties props = new Properties();
    props.put("bootstrap.servers", "localhost:9092");
    props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
    props.put("value.deserializer", "com.intuit.eventcollection.queue.KafkaJsonDeserializer");
    props.put("group.id", "test");
    props.put("enable.auto.commit", "true");
    props.put("auto.commit.interval.ms", "1000");
    props.put("session.timeout.ms", "30000");
    props.put("auto.offset.reset", "earliest"); 

    // Figure out where to start processing messages from
    KafkaConsumer<String, Map<String, String>> kafkaConsumer = new KafkaConsumer<String, Map<String, String>>(
            props);
    kafkaConsumer.subscribe(Arrays.asList(topic));
    ConsumerRecords<String, Map<String, String>> records = null;
    // Start processing messages
    try {
        records = kafkaConsumer.poll(100);
wxclj1h5

wxclj1h51#

如果在指定为轮询超时(timeout)的时间段内没有发布新的未使用消息,则poll将不返回任何内容。

相关问题