String brokerUrls = "localhost:9092";
String topic = "test";
int numPartitions = 6;
Properties props = new Properties();
props.put("bootstrap.servers", brokerUrls);
props.put("group.id", "test-group");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
KafkaConsumer consumer = new KafkaConsumer<>(props);
consumer.subscribe(Arrays.asList(topic));
List partitions = new ArrayList<>();
for (int i = 0; i < numPartitions; ++i) {
partitions.add(new TopicPartition(topic, i));
}
Map offsets = consumer.endOffsets(partitions);
Map earlyOffsets = consumer.beginningOffsets(partitions);
int totalCount = 0;
for (TopicPartition tp: offsets.keySet()) {
totalCount += (offsets.get(tp) - earlyOffsets.get(tp));
}
System.out.println("Total message count: " + totalCount);
consumer.close();