2. Which of the following is the correct syntax to start a Kafka consumer poll loop in Java?
easy
A. consumer.poll(Duration(100));
B. for(int i=0; i<10; i++) consumer.poll(100);
C. consumer.poll(100); while(true) {}
D. while(true) { consumer.poll(Duration.ofMillis(100)); }
Solution
Step 1: Check correct poll method usage
The poll method requires a Duration argument like Duration.ofMillis(100) in Java.
Step 2: Verify loop structure
A continuous loop like while(true) is used to keep polling messages repeatedly.
Final Answer:
while(true) { consumer.poll(Duration.ofMillis(100)); } -> Option D
Quick Check:
Correct poll syntax with continuous loop [OK]
Hint: Use while(true) with poll(Duration.ofMillis(x)) [OK]
Common Mistakes:
Using poll with int instead of Duration
Not using a loop for continuous polling
Incorrect Duration constructor syntax
3. What will be the output of the following Kafka consumer poll loop snippet?
while (true) {
var records = consumer.poll(Duration.ofMillis(100));
System.out.println(records.count());
break;
}
medium
A. Prints the number of records fetched in one poll and exits
B. Prints zero and continues infinitely
C. Throws an exception because of missing commit
D. Does not compile due to syntax error
Solution
Step 1: Analyze the poll call and record count
The poll() fetches records and records.count() returns how many were fetched.
Step 2: Understand the loop and break
The loop runs once because of break; after printing count, so it prints the count once and stops.
Final Answer:
Prints the number of records fetched in one poll and exits -> Option A
Quick Check:
poll() fetches records, break stops loop [OK]
Hint: Break after poll prints count once [OK]
Common Mistakes:
Assuming infinite loop without break
Thinking commit is mandatory to print count
Confusing syntax causing compile error
4. Identify the error in this Kafka consumer poll loop code snippet:
while (true) {
var records = consumer.poll(100);
for (var record : records) {
System.out.println(record.value());
}
}
medium
A. poll() argument should be a Duration, not an int
B. for-each loop syntax is incorrect
C. Missing consumer.subscribe() call before loop
D. System.out.println cannot print record values
Solution
Step 1: Check poll method argument type
The poll() method requires a Duration argument, not a plain integer.
Step 2: Confirm other code parts
The for-each loop and print statement are correct; missing subscribe is not shown as error here.
Final Answer:
poll() argument should be a Duration, not an int -> Option A
Quick Check:
poll() needs Duration argument [OK]
Hint: poll() needs Duration, not int [OK]
Common Mistakes:
Passing int instead of Duration to poll()
Confusing for-each syntax
Assuming subscribe() missing causes compile error
5. You want to process messages from multiple Kafka topics continuously and commit offsets manually after processing. Which code snippet correctly implements this using a consumer poll loop?
hard
A. consumer.poll(Duration.ofMillis(200));
consumer.commitSync();
B. while(true) {
var records = consumer.poll(200);
for(var record : records) {
process(record);
}
consumer.commitAsync();
}
C. while(true) {
var records = consumer.poll(Duration.ofMillis(200));
for(var record : records) {
process(record);
}
consumer.commitSync();
}
D. for(int i=0; i<10; i++) {
var records = consumer.poll(Duration.ofMillis(200));
consumer.commitSync();
}
Solution
Step 1: Check poll argument and loop structure
while(true) {
var records = consumer.poll(Duration.ofMillis(200));
for(var record : records) {
process(record);
}
consumer.commitSync();
} uses poll(Duration.ofMillis(200)) inside a continuous while(true) loop, which is correct.
Step 2: Verify message processing and manual commit
It processes each record and calls commitSync() after processing, ensuring offsets are committed manually.
Final Answer:
while(true) {
var records = consumer.poll(Duration.ofMillis(200));
for(var record : records) {
process(record);
}
consumer.commitSync();
} -> Option C
Quick Check:
Continuous poll, process, then manual commit [OK]
Hint: Use while(true), poll with Duration, then commitSync() [OK]
Common Mistakes:
Passing int instead of Duration to poll()
Using for loop instead of continuous loop
Not processing records before commit
Missing loop causing single poll only
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.