簡體   English   中英

無法獲得kafka主題中的消息數

[英]Unable to get number of messages in kafka topic

我對kafka相當陌生。 我用Java創建了一個示例生產者和消費者。 使用生產者,我能夠將數據發送到kafka主題,但無法使用以下使用者代碼獲得該主題中的記錄數。

    public class ConsumerTests {
        public static void main(String[] args) throws Exception {
            BasicConfigurator.configure();

            String topicName = "MobileData";
            String groupId = "TestGroup";
            Properties properties = new Properties();
            properties.put("bootstrap.servers", "localhost:9092");
            properties.put("group.id", groupId);
            properties.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
            properties.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");

            KafkaConsumer<String, String> kafkaConsumer = new KafkaConsumer<>(properties);
            kafkaConsumer.subscribe(Arrays.asList(topicName));


try {
  while (true) {
    ConsumerRecords<String, String> consumerRecords = consumer.poll(100);
    System.out.println("Record count is " + records.count());
  }
} catch (WakeupException e) {
  // ignore for shutdown
} finally {
  consumer.close();
}

}
}

我在控制台中沒有任何異常,但是即使主題中有消息,consumerRecords.count()始終返回0。 如果我缺少某些東西來獲取記錄詳細信息,請告訴我。

poll(...)調用通常應處於循環中。 在進行分區分配時,初始poll(...)總是有可能不返回任何數據(取決於超時)。 這是一個例子:

try {
  while (true) {
    ConsumerRecords<String, String> records = consumer.poll(100);
    System.out.println("Record count is " + records.count());
  }
} catch (WakeupException e) {
  // ignore for shutdown
} finally {
  consumer.close();
}

有關更多信息,請參見此相關文章

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM