Partition assignment in Kafka - Commands & Configuration
kafka-consumer-groups --bootstrap-server localhost:9092 --describe --group my-consumer-group--bootstrap-server - Specifies the Kafka server to connect to.--describe - Shows detailed information about the consumer group.--group - Specifies the consumer group to inspect.kafka-topics --bootstrap-server localhost:9092 --alter --topic my-topic --partitions 4
--alter - Modifies an existing topic.--partitions - Sets the new total number of partitions.kafka-console-consumer --bootstrap-server localhost:9092 --topic my-topic --partition 2 --offset earliest
--partition - Specifies which partition to read from.--offset - Specifies where to start reading messages.If you remember nothing else from this pattern, remember: partition assignment controls how Kafka spreads data and workload across servers for balance and speed.
Practice
What is the main purpose of partition assignment in Kafka?
Solution
Step 1: Understand partition assignment role
Partition assignment divides topic partitions among consumers to distribute processing.Step 2: Compare options
Only To split topic data among consumers to share the workload describes splitting data among consumers; others describe unrelated tasks.Final Answer:
To split topic data among consumers to share the workload -> Option BQuick Check:
Partition assignment = workload sharing [OK]
- Confusing partition assignment with encryption
- Thinking it compresses data
- Assuming it creates topics
Which of the following is a valid Kafka partition assignment strategy?
Solution
Step 1: Recall Kafka partition assignment strategies
Kafka supports strategies like Range, RoundRobin, and Sticky.Step 2: Identify valid strategy
RoundRobin is a known Kafka strategy; others are unrelated algorithms.Final Answer:
RoundRobin -> Option AQuick Check:
RoundRobin = valid strategy [OK]
- Confusing general algorithms with Kafka strategies
- Choosing unrelated computer science terms
- Ignoring Kafka-specific terms
Given a topic with 4 partitions and 2 consumers using the Range strategy, how are partitions assigned?
Partitions: 0, 1, 2, 3
Consumers: C1, C2
Strategy: RangeSolution
Step 1: Understand Range strategy behavior
Range assigns consecutive partitions to each consumer in order.Step 2: Apply Range to 4 partitions and 2 consumers
Partitions 0 and 1 go to C1; partitions 2 and 3 go to C2.Final Answer:
C1 gets partitions 0 and 1; C2 gets partitions 2 and 3 -> Option DQuick Check:
Range = consecutive partition blocks [OK]
- Mixing RoundRobin with Range strategy
- Assuming random assignment
- Giving all partitions to one consumer
Identify the error in this partition assignment code snippet using the Sticky strategy:
assignor = StickyAssignor()
assignor.assign(partitions=[0,1,2], consumers=["C1"])Solution
Step 1: Understand StickyAssignor requirements
Sticky strategy balances partitions among multiple consumers to minimize movement.Step 2: Check given consumers list
Only one consumer is provided, so StickyAssignor cannot balance partitions.Final Answer:
StickyAssignor requires at least two consumers for assignment -> Option CQuick Check:
Sticky needs multiple consumers [OK]
- Assuming single consumer works with Sticky
- Confusing consumer data types
- Thinking Sticky doesn't assign partitions
You have 5 consumers and a topic with 10 partitions. You want to maintain processing order per partition and balance load evenly. Which partition assignment strategy should you choose?
Solution
Step 1: Analyze requirements
Need to keep processing order per partition and balance load evenly.Step 2: Compare strategies
Range assigns consecutive partitions but may imbalance load; RoundRobin balances evenly but can cause frequent partition moves; Sticky balances load and minimizes partition reassignment, preserving order.Step 3: Choose best fit
Sticky strategy best meets both order and load balance requirements.Final Answer:
Sticky, because it balances partitions while minimizing reassignment -> Option AQuick Check:
Sticky = balanced load + order preservation [OK]
- Choosing Range despite load imbalance
- Picking RoundRobin ignoring partition order
- Selecting random assignment which is unpredictable
Ready to prove it?
Pass the test and this pattern moves unknown
