The subscribe method registers the consumer to listen to topics.
Step 2: Match method to code
Using consumer.subscribe(Collections.singletonList("my-topic")) correctly subscribes to the topic.
Final Answer:
subscribe -> Option A
Quick Check:
Subscribe = listen to topics [OK]
Hint: Use subscribe() to listen to topics, not assign() [OK]
Common Mistakes:
Using assign() instead of subscribe()
Calling poll() to subscribe
Using commitSync() incorrectly
3.
What will the following Java Kafka consumer code print if the topic has one message with value "Hello Kafka"?
ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
for (ConsumerRecord<String, String> record : records) {
System.out.println(record.value());
}
medium
A. Hello Kafka
B. null
C. ConsumerRecords object
D. No output
Solution
Step 1: Poll messages from topic
The poll method fetches available messages; here it gets one message.
Step 2: Print each message value
The loop prints the value() of each record, which is "Hello Kafka".
Final Answer:
Hello Kafka -> Option A
Quick Check:
Print record.value() = Hello Kafka [OK]
Hint: poll() fetches messages; print record.value() to see content [OK]
Common Mistakes:
Printing the record object instead of value
Expecting poll() to return null if no messages
Confusing key and value fields
4.
Identify the error in this Kafka consumer code snippet:
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("group.id", "group1");
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<>(props);
consumer.subscribe(Collections.singletonList("my-topic"));
ConsumerRecords<String, String> records = consumer.poll(100);
for (ConsumerRecord<String, String> record : records) {
System.out.println(record.value());
}
medium
A. group.id property is missing
B. subscribe() should use assign()
C. Deserializers are incorrectly set
D. poll() argument should be Duration, not int
Solution
Step 1: Check poll() method signature
In modern Kafka clients, poll requires a Duration argument, not an int.
Step 2: Identify incorrect argument type
The code uses poll(100) (int), should be poll(Duration.ofMillis(100)).
Final Answer:
poll() argument should be Duration, not int -> Option D
Quick Check:
poll() needs Duration argument [OK]
Hint: Use Duration.ofMillis() with poll(), not plain int [OK]
Common Mistakes:
Passing int to poll() instead of Duration
Missing group.id property
Using assign() instead of subscribe()
5.
You want to consume messages from two topics topicA and topicB and print their keys and values. Which code snippet correctly subscribes and processes messages?
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("group.id", "group1");
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<>(props);
consumer._____ (Arrays.asList("topicA", "topicB"));
while (true) {
ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
for (ConsumerRecord<String, String> record : records) {
System.out.println("Key: " + record.key() + ", Value: " + record.value());
}
}
hard
A. assign
B. subscribe
C. poll
D. commitSync
Solution
Step 1: Choose method to listen to multiple topics
subscribe accepts a list of topics to listen to, while assign assigns specific partitions.
Step 2: Confirm correct usage in code
Using consumer.subscribe(Arrays.asList("topicA", "topicB")) subscribes to both topics properly.
Final Answer:
subscribe -> Option B
Quick Check:
subscribe() listens to multiple topics [OK]
Hint: Use subscribe() with list to consume multiple topics [OK]
Common Mistakes:
Using assign() instead of subscribe() for topics
Calling poll() to subscribe
Forgetting to print keys
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.