0
0
Kafkadevops~10 mins

Consumer group concept in Kafka - Step-by-Step Execution

Choose your learning style9 modes available
Process Flow - Consumer group concept
Start Consumer Group
Assign Partitions to Consumers
Consumers Read Messages
Commit Offsets
Process Messages in Parallel
New Consumer Joins?
YesRebalance Partitions
Reassign Partitions
Continue Reading
This flow shows how a consumer group starts, partitions are assigned to consumers, messages are read and processed, and how rebalancing happens when consumers join or leave.
Execution Sample
Kafka
ConsumerGroup group = new ConsumerGroup("group1");
Consumer c1 = group.addConsumer("c1");
Consumer c2 = group.addConsumer("c2");
group.assignPartitions(new int[]{0,1,2,3});
c1.read(0);
c2.read(1);
This code creates a consumer group with two consumers and assigns partitions to them for reading messages.
Process Table
StepActionPartition AssignmentConsumer ReadingOffset CommitNotes
1Create Consumer Group 'group1'NoneNoneNoneGroup initialized, no consumers yet
2Add Consumer 'c1'NoneNoneNoneOne consumer in group
3Add Consumer 'c2'NoneNoneNoneTwo consumers in group
4Assign partitions [0,1,2,3]c1: [0,2], c2: [1,3]NoneNonePartitions evenly assigned
5Consumer c1 reads partition 0c1: [0,2], c2: [1,3]c1 reads partition 0 messagesOffset updated for partition 0c1 processes messages from partition 0
6Consumer c2 reads partition 1c1: [0,2], c2: [1,3]c2 reads partition 1 messagesOffset updated for partition 1c2 processes messages from partition 1
7New Consumer 'c3' joinsTrigger rebalanceNoneNonePartitions reassigned among c1, c2, c3
8After rebalancec1: [0], c2: [2], c3: [1,3]NoneNoneConsumers get new partitions
9Consumers read assigned partitionsSame as step 8Each consumer reads its partitionsOffsets updatedParallel processing continues
10Consumer c2 leavesTrigger rebalanceNoneNonePartitions reassigned to c1 and c3
11After rebalancec1: [0,2], c3: [1,3]NoneNoneGroup stabilizes with two consumers
12Continue readingSame as step 11Consumers read partitionsOffsets updatedNormal operation continues
💡 Execution stops when consumers leave or group is closed.
Status Tracker
VariableStartAfter Step 3After Step 4After Step 7After Step 10Final
Consumer GroupNonegroup1group1group1group1group1
ConsumersNone[c1, c2][c1, c2][c1, c2, c3][c1, c3][c1, c3]
Partition AssignmentNoneNonec1:[0,2], c2:[1,3]c1:[0], c2:[2], c3:[1,3]c1:[0,2], c3:[1,3]c1:[0,2], c3:[1,3]
Offsets CommittedNoneNoneUpdated for partitions 0,1Updated after rebalanceUpdated after rebalanceUpdated continuously
Key Moments - 3 Insights
Why do partitions get reassigned when a new consumer joins?
When a new consumer joins (see step 7), Kafka rebalances partitions to distribute load evenly among consumers, ensuring each partition is read by only one consumer in the group.
Can two consumers read the same partition at the same time?
No, as shown in step 4 and 8, each partition is assigned to only one consumer to avoid duplicate processing.
What happens to offsets when consumers leave or join?
Offsets are committed by consumers as they read messages (steps 5 and 6). After rebalancing (steps 7 and 10), consumers continue from the last committed offsets to avoid missing or repeating messages.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table at step 4, which partitions does consumer c1 read?
A[0, 1]
B[1, 3]
C[0, 2]
D[2, 3]
💡 Hint
Check the 'Partition Assignment' column at step 4 in the execution table.
At which step does a rebalance happen due to a new consumer joining?
AStep 7
BStep 5
CStep 10
DStep 12
💡 Hint
Look for 'New Consumer joins' and 'Trigger rebalance' in the execution table.
If consumer c2 leaves at step 10, how does partition assignment change?
APartitions stay the same
BPartitions reassigned to c1 and c3
CPartitions assigned only to c3
DPartitions assigned to c1 only
💡 Hint
Check 'Partition Assignment' after step 10 in the execution table.
Concept Snapshot
Consumer Group Concept in Kafka:
- Consumers join a group to read partitions.
- Each partition assigned to only one consumer.
- Consumers read messages and commit offsets.
- When consumers join/leave, partitions rebalance.
- Ensures parallel, fault-tolerant message processing.
Full Transcript
This visual execution trace shows how Kafka consumer groups work. First, a consumer group is created with no consumers. Then consumers join the group. Kafka assigns partitions evenly to consumers so each partition is read by only one consumer. Consumers read messages from their assigned partitions and commit offsets to track progress. When a new consumer joins, Kafka triggers a rebalance to redistribute partitions evenly. Similarly, when a consumer leaves, partitions are reassigned to remaining consumers. This process ensures messages are processed in parallel without duplication and that the system adapts to changes in consumer membership.