I am a newbie to Kafka and running a simple kafka consumer/producer example as given on KafkaConsumer and KafkaProducer. When I am running consumer from terminal, consumer is re
First check what all the groups are available by using :
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
Then check for which group your topic belongs by using below cmd :
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group <your group name> --describe
Once you find your topic and associated group name (just replace group.id with your group if it not belongs to default group) then try with below prop and let me know if it works :
props.put("bootstrap.servers", "localhost:9092");
props.put("group.id", "test-consumer-group"); // default topic name
props.put("enable.auto.commit", "true");
props.put("auto.commit.interval.ms", "1000");
props.put("session.timeout.ms", "30000");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer","org.apache.kafka.common.serialization.StringDeserializer");
KafkaConsumer<String, String> consumer = new KafkaConsumer<String, String>(props);
//Kafka Consumer subscribes list of topics here.
consumer.subscribe(Arrays.asList(topicName)); // replace you topic name
//print the topic name
java.util.Map<String,java.util.List<PartitionInfo>> listTopics = consumer.listTopics();
System.out.println("list of topic size :" + listTopics.size());
for(String topic : listTopics.keySet()){
System.out.println("topic name :"+topic);
}
Clear Your 'tmp'
folder in the drive which you accessing kafka. then open new 'cmd' command window! Restart server freshly, and post " .\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic H1 --from-beginning
"this code in the command window to run consumer without any error
Try to set enable.partition.eof
parameter to false
:
props.put("enable.partition.eof", "false");
That worked for me.
Run the consumer before running the producer so that the consumer registers with the group coordinator first.Later when u run the producer the consumer consumes the messages.The first time u run the consumer its registering with the group coordinator.In order to find out till what offset the consumer has consumed the messages use this kafka-consumer-offset-checker.bat --group group-1 --topic testing-1 --zookeeper localhost:2181
This shows the consumer has consumed which offset of the topic last.
Try this one this code worked for me.
Properties props = new Properties();
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG,
"org.apache.kafka.common.serialization.StringDeserializer");
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG,
"org.apache.kafka.common.serialization.StringDeserializer");
props.put(ConsumerConfig.GROUP_ID_CONFIG, "test-consumer-group");
KafkaConsumer<String, String> myConsumer = new KafkaConsumer<>(props);
myConsumer.subscribe(Arrays.asList(topicName));
myConsumer.subscribe(topics);
try{
while (true) {
ConsumerRecords<String, String> records = myConsumer.poll(100);
for (ConsumerRecord<String, String> record : records) {
System.out.println(String.format( "Topic: %s, Partition: %d, Offset: %d, key: %s, value: %s",
record.topic(),record.partition(), record.offset(),record.key(),record.value()
));
}}
}catch (Exception e){
System.out.println(e.getMessage());
}finally {
myConsumer.close();
}
I faced this issue with latest release of kafka kafka_2.13-2.6.0.tgz (asc, sha512) when installed locally on windows 7. Messages were not flowing from producer to consumer. Checked and found that Consumer offset topic was not created not sure why.
Installed earlier version of Kakfa kafka_2.12-2.5.0.tgz and it started working. Consumer offset topic was created with the old version