Bird
Raised Fist0
Kafkadevops~20 mins

Rebalancing behavior in Kafka - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Kafka Rebalancing Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output when a consumer group rebalances?

Consider a Kafka consumer group with 3 consumers subscribed to a topic with 6 partitions. When one consumer leaves the group, what happens to the partition assignments?

Kafka
Consumer group: 3 consumers
Topic partitions: 6
Event: One consumer leaves

What is the new partition assignment behavior?
ARemaining consumers evenly redistribute all 6 partitions among themselves.
BPartitions are reassigned randomly without considering previous assignments.
CAll partitions are assigned to a single remaining consumer.
DPartitions assigned to the leaving consumer remain unassigned until manual reassignment.
Attempts:
2 left
💡 Hint

Think about how Kafka ensures load balancing among active consumers.

❓ Predict Output
intermediate
2:00remaining
What error occurs if a consumer does not commit offsets before rebalancing?

A Kafka consumer processes messages but does not commit offsets before a rebalance occurs. What is the expected behavior?

Kafka
Consumer processes messages
No offset commit
Rebalance triggered

What happens next?
AConsumer will reprocess messages from the last committed offset, causing duplicates.
BConsumer loses all messages and skips to the latest offset.
CConsumer crashes with a CommitFailedException.
DConsumer automatically commits offsets before rebalance without explicit call.
Attempts:
2 left
💡 Hint

Offsets determine where consumption resumes after rebalance.

🔧 Debug
advanced
2:00remaining
Why does this Kafka consumer group experience frequent rebalances?

Given the following consumer configuration, identify the cause of frequent rebalances:

group.id=my-group
session.timeout.ms=10000
auto.offset.reset=earliest
max.poll.interval.ms=3000
Asession.timeout.ms is too high, causing delayed detection of dead consumers.
Bmax.poll.interval.ms is less than session.timeout.ms, causing session expiration.
Cauto.offset.reset=earliest causes rebalances on startup.
Dgroup.id is not unique, causing conflicts.
Attempts:
2 left
💡 Hint

Check the relationship between poll interval and session timeout.

🧠 Conceptual
advanced
2:00remaining
How does Kafka ensure partition ownership consistency during rebalancing?

Which mechanism does Kafka use to guarantee that only one consumer owns a partition at a time during rebalancing?

AKafka uses a first-come, first-served approach without coordination.
BKafka relies on Zookeeper locks to assign partitions exclusively.
CKafka uses a group coordinator and heartbeat protocol to manage partition ownership.
DKafka assigns partitions randomly without ownership guarantees.
Attempts:
2 left
💡 Hint

Think about how Kafka tracks consumer liveness and ownership.

🚀 Application
expert
3:00remaining
How to minimize downtime during Kafka consumer group rebalancing?

You have a critical Kafka consumer group that must minimize downtime during rebalances. Which approach best achieves this?

AIncrease max.poll.records to process more messages per poll.
BSet session.timeout.ms to a very low value to detect failures faster.
CDisable heartbeats to prevent rebalances triggered by missed heartbeats.
DUse static group membership with assigned instance IDs to avoid full rebalances on consumer restarts.
Attempts:
2 left
💡 Hint

Consider Kafka features that reduce rebalance scope.

Practice

(1/5)
1. What triggers a rebalance in a Kafka consumer group?
easy
A. When a consumer commits an offset
B. When a message is consumed
C. When a topic is deleted
D. When a consumer joins or leaves the group

Solution

  1. Step 1: Understand rebalance triggers

    Rebalancing happens when the group membership changes or partitions change.
  2. Step 2: Identify correct trigger

    Joining or leaving a consumer causes the group to rebalance to share partitions evenly.
  3. Final Answer:

    When a consumer joins or leaves the group -> Option D
  4. Quick Check:

    Consumer join/leave triggers rebalance [OK]
Hint: Rebalance happens on group membership changes [OK]
Common Mistakes:
  • Thinking rebalance happens on every message
  • Confusing topic deletion with rebalance
  • Assuming offset commit triggers rebalance
2. Which of the following is the correct way to listen for rebalance events in Kafka consumer code?
easy
A. consumer.subscribe(topics, new ConsumerRebalanceListener() {...})
B. consumer.on('rebalance', callback)
C. consumer.addRebalanceListener(callback)
D. consumer.listenRebalance(callback)

Solution

  1. Step 1: Recall Kafka consumer API

    Kafka's Java consumer uses subscribe with a ConsumerRebalanceListener to handle rebalance events.
  2. Step 2: Match correct syntax

    Only consumer.subscribe(topics, new ConsumerRebalanceListener() {...}) shows the correct method signature for rebalance listener.
  3. Final Answer:

    consumer.subscribe(topics, new ConsumerRebalanceListener() {...}) -> Option A
  4. Quick Check:

    Use subscribe with ConsumerRebalanceListener [OK]
Hint: Use subscribe with ConsumerRebalanceListener for rebalance [OK]
Common Mistakes:
  • Using non-existent methods like on or addRebalanceListener
  • Confusing event listeners with other APIs
  • Missing the listener parameter in subscribe
3. Given a consumer group with 3 consumers and 6 partitions, what happens after one consumer leaves the group?
medium
A. The consumer group stops consuming messages
B. The remaining 2 consumers rebalance and each consumes 3 partitions
C. The partitions are left unassigned until the group is restarted
D. The remaining consumers continue consuming their original partitions

Solution

  1. Step 1: Understand partition assignment

    Partitions are divided evenly among active consumers in the group.
  2. Step 2: Calculate new assignment after consumer leaves

    With 6 partitions and 2 consumers left, each gets 3 partitions after rebalance.
  3. Final Answer:

    The remaining 2 consumers rebalance and each consumes 3 partitions -> Option B
  4. Quick Check:

    Partitions evenly split after consumer leaves [OK]
Hint: Partitions redistribute evenly after consumer leaves [OK]
Common Mistakes:
  • Assuming partitions stay with old consumers
  • Thinking partitions become unassigned
  • Believing the group stops consuming
4. You wrote a rebalance listener but your consumer crashes with a NullPointerException during rebalance. What is the likely cause?
medium
A. Not subscribing to the topic before starting the consumer
B. Using the wrong Kafka version
C. Not handling partition assignment and revocation properly in the listener
D. Committing offsets manually instead of auto-commit

Solution

  1. Step 1: Analyze rebalance listener role

    The listener must handle partition revocation and assignment to avoid null references.
  2. Step 2: Identify cause of NullPointerException

    Failing to check or update state during rebalance causes null pointer errors.
  3. Final Answer:

    Not handling partition assignment and revocation properly in the listener -> Option C
  4. Quick Check:

    Proper rebalance handling prevents NullPointerException [OK]
Hint: Handle partition changes carefully in rebalance listener [OK]
Common Mistakes:
  • Ignoring partition revocation steps
  • Assuming auto-commit fixes rebalance issues
  • Blaming Kafka version without checking code
5. You want to ensure no duplicate message processing during rebalance in a Kafka consumer group. Which approach is best?
hard
A. Implement a ConsumerRebalanceListener to commit offsets before partition revocation
B. Disable rebalancing by fixing the number of consumers
C. Use auto-commit offsets with a short interval
D. Restart consumers manually after each rebalance

Solution

  1. Step 1: Understand duplicate processing risk

    During rebalance, uncommitted offsets can cause reprocessing of messages.
  2. Step 2: Use rebalance listener to commit offsets

    Committing offsets in onPartitionsRevoked ensures processed messages are saved before rebalance.
  3. Step 3: Evaluate other options

    Disabling rebalance or relying on auto-commit does not guarantee no duplicates; manual restarts are inefficient.
  4. Final Answer:

    Implement a ConsumerRebalanceListener to commit offsets before partition revocation -> Option A
  5. Quick Check:

    Commit offsets on revoke to avoid duplicates [OK]
Hint: Commit offsets in rebalance listener before revocation [OK]
Common Mistakes:
  • Disabling rebalance which is not practical
  • Relying only on auto-commit offsets
  • Restarting consumers manually wastes resources
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