Bird
Raised Fist0
Kafkadevops~5 mins

Java consumer client in Kafka - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the main role of a Java Kafka consumer client?
A Java Kafka consumer client reads messages from Kafka topics, allowing applications to process data streams in real time.
Click to reveal answer
beginner
Which method in the KafkaConsumer class is used to subscribe to topics?
The subscribe() method is used to tell the consumer which topics to listen to.
Click to reveal answer
beginner
What does the poll() method do in a Kafka consumer?
The poll() method fetches records from the subscribed topics. It waits for new data and returns a batch of records.
Click to reveal answer
intermediate
Why is it important to commit offsets in a Kafka consumer?
Committing offsets tells Kafka which messages have been processed, so the consumer can resume from the right place after a restart.
Click to reveal answer
beginner
What configuration property sets the Kafka server address in a Java consumer client?
The bootstrap.servers property specifies the Kafka broker addresses the consumer connects to.
Click to reveal answer
Which method do you use to start receiving messages from Kafka topics in a Java consumer?
Apoll()
Bsend()
Cconnect()
Dsubscribe()
What does the group.id configuration property define in a Kafka consumer?
AThe consumer group the client belongs to
BThe topic name
CThe Kafka broker address
DThe message key
How does a Kafka consumer know where to resume reading after a restart?
ABy remembering the last message content
BBy reconnecting to the broker
CBy subscribing again
DBy committing offsets
Which of these is NOT a valid Kafka consumer configuration property?
Abootstrap.servers
Bkey.deserializer
Cpoll.interval
Dvalue.deserializer
What type of object does the poll() method return in a Kafka consumer?
AList of strings
BConsumerRecords object
CString
DMap of topics
Explain the basic steps to create and run a Java Kafka consumer client.
Think about how the consumer connects, listens, and remembers progress.
You got /5 concepts.
    Describe why committing offsets is important in Kafka consumer clients and how it affects message processing.
    Consider what happens if the consumer crashes and restarts.
    You got /4 concepts.

      Practice

      (1/5)
      1.

      What is the main purpose of a Java consumer client in Kafka?

      easy
      A. To create Kafka topics
      B. To send messages to Kafka topics
      C. To read messages from Kafka topics
      D. To delete Kafka topics

      Solution

      1. Step 1: Understand Kafka client roles

        Kafka clients include producers (send messages) and consumers (read messages).
      2. Step 2: Identify the consumer's role

        The Java consumer client reads messages from Kafka topics to process or display them.
      3. Final Answer:

        To read messages from Kafka topics -> Option C
      4. Quick Check:

        Consumer = reads messages [OK]
      Hint: Consumer reads, producer writes messages in Kafka [OK]
      Common Mistakes:
      • Confusing consumer with producer
      • Thinking consumer creates topics
      • Assuming consumer deletes topics
      2.

      Which of the following is the correct way to subscribe a Kafka consumer to a topic named my-topic?

      consumer._____ (Collections.singletonList("my-topic"));
      easy
      A. subscribe
      B. assign
      C. poll
      D. commitSync

      Solution

      1. Step 1: Understand consumer methods

        The subscribe method registers the consumer to listen to topics.
      2. Step 2: Match method to code

        Using consumer.subscribe(Collections.singletonList("my-topic")) correctly subscribes to the topic.
      3. Final Answer:

        subscribe -> Option A
      4. 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

      1. Step 1: Poll messages from topic

        The poll method fetches available messages; here it gets one message.
      2. Step 2: Print each message value

        The loop prints the value() of each record, which is "Hello Kafka".
      3. Final Answer:

        Hello Kafka -> Option A
      4. 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

      1. Step 1: Check poll() method signature

        In modern Kafka clients, poll requires a Duration argument, not an int.
      2. Step 2: Identify incorrect argument type

        The code uses poll(100) (int), should be poll(Duration.ofMillis(100)).
      3. Final Answer:

        poll() argument should be Duration, not int -> Option D
      4. 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

      1. Step 1: Choose method to listen to multiple topics

        subscribe accepts a list of topics to listen to, while assign assigns specific partitions.
      2. Step 2: Confirm correct usage in code

        Using consumer.subscribe(Arrays.asList("topicA", "topicB")) subscribes to both topics properly.
      3. Final Answer:

        subscribe -> Option B
      4. 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 unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard