Bird
Raised Fist0

You need to consume messages from two Kafka topics, orders and payments, using a single Java consumer instance. Which code snippet correctly subscribes to both topics?

hard🚀 Application Q8 of Q15
Kafka - with Java/Python

You need to consume messages from two Kafka topics, orders and payments, using a single Java consumer instance. Which code snippet correctly subscribes to both topics?

Aconsumer.assign(Arrays.asList(new TopicPartition("orders", 0), new TopicPartition("payments", 0)));
Bconsumer.subscribe(Collections.singletonList("orders,payments"));
Cconsumer.subscribe(Arrays.asList("orders", "payments"));
Dconsumer.subscribe("orders"); consumer.subscribe("payments");
Step-by-Step Solution
Solution:
  1. Step 1: Understand subscription method

    The subscribe() method accepts a collection of topic names to subscribe to multiple topics.
  2. Step 2: Analyze options

    consumer.subscribe(Arrays.asList("orders", "payments")); correctly uses Arrays.asList to pass both topics as a list.
    consumer.subscribe(Collections.singletonList("orders,payments")); passes a single string with comma, which is incorrect.
    consumer.assign(Arrays.asList(new TopicPartition("orders", 0), new TopicPartition("payments", 0))); uses assign() with partitions, which is manual assignment, not subscription.
    consumer.subscribe("orders"); consumer.subscribe("payments"); calls subscribe() twice, which overwrites the first subscription.
  3. Final Answer:

    consumer.subscribe(Arrays.asList("orders", "payments")); -> Option C
  4. Quick Check:

    Subscribe once with a list of topics. [OK]
Quick Trick: Use subscribe with a list for multiple topics [OK]
Common Mistakes:
MISTAKES
  • Passing comma-separated string instead of list
  • Calling subscribe multiple times overwrites subscription
  • Confusing assign() with subscribe()

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Kafka Quizzes