0
0
Kafkadevops~20 mins

Partitioner behavior in Kafka - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Kafka Partitioner Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
What is the partition chosen for a given key?
Given a Kafka producer configured with 3 partitions and the default partitioner, what partition will the message with key "user123" be sent to?
Kafka
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
KafkaProducer<String, String> producer = new KafkaProducer<>(props);

String topic = "test-topic";
String key = "user123";
int numPartitions = 3;

// Assume default partitioner uses key.hashCode() % numPartitions
int partition = Math.abs(key.hashCode()) % numPartitions;
System.out.println(partition);
A1
B2
C0
D3
Attempts:
2 left
💡 Hint
Remember the default partitioner uses the hash code of the key modulo the number of partitions.
Predict Output
intermediate
2:00remaining
What happens if the key is null?
In Kafka's default partitioner, what partition will a message be sent to if the key is null and the topic has 4 partitions?
Kafka
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
KafkaProducer<String, String> producer = new KafkaProducer<>(props);

String topic = "test-topic";
String key = null;
int numPartitions = 4;

// Default partitioner behavior for null key
int partition = new Random().nextInt(numPartitions);
System.out.println(partition);
APartition 4 (out of range)
BAlways partition 0
CRandom partition between 0 and 3
DThrows NullPointerException
Attempts:
2 left
💡 Hint
Check how the default partitioner handles null keys.
🧠 Conceptual
advanced
1:30remaining
Why use a custom partitioner?
Which of the following is the main reason to implement a custom partitioner in Kafka?
ATo automatically retry failed messages
BTo encrypt messages before sending
CTo improve message serialization speed
DTo control how messages are distributed across partitions based on custom logic
Attempts:
2 left
💡 Hint
Think about what partitioning controls in Kafka.
Predict Output
advanced
1:30remaining
What error occurs with invalid partition number?
What error will Kafka producer throw if you try to send a message to partition 5 on a topic with only 4 partitions (0 to 3)?
Kafka
ProducerRecord<String, String> record = new ProducerRecord<>("test-topic", 5, "key", "value");
producer.send(record);
AIllegalArgumentException: Partition out of range
BNullPointerException
CNo error, message sent to partition 0
DTimeoutException
Attempts:
2 left
💡 Hint
Check Kafka's validation for partition numbers.
🧠 Conceptual
expert
2:00remaining
How does Kafka ensure message order within a partition?
Which statement best explains how Kafka guarantees message order within a partition?
AMessages are ordered by timestamp regardless of partition
BMessages with the same key always go to the same partition, preserving order for that key
CKafka uses a global sequence number for all messages
DMessages are randomly assigned to partitions to balance load
Attempts:
2 left
💡 Hint
Think about how keys and partitions relate to ordering.