Bird
Raised Fist0
Kafkadevops~5 mins

Partitioner behavior in Kafka - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the role of a partitioner in Kafka?
A partitioner decides which partition a message will be sent to within a Kafka topic. It helps distribute data evenly and ensures messages with the same key go to the same partition.
Click to reveal answer
beginner
How does Kafka's default partitioner decide the partition for a message with a key?
Kafka's default partitioner uses the hash of the message key to pick a partition. This ensures all messages with the same key go to the same partition, preserving order for that key.
Click to reveal answer
beginner
What happens if a Kafka message has no key when using the default partitioner?
If a message has no key, the default partitioner assigns it to partitions in a round-robin way. This spreads messages evenly across partitions but does not guarantee order.
Click to reveal answer
intermediate
Can you customize partitioner behavior in Kafka? How?
Yes, you can write a custom partitioner by implementing Kafka's Partitioner interface. This lets you control how messages are assigned to partitions based on your own logic.
Click to reveal answer
beginner
Why is consistent partitioning important in Kafka?
Consistent partitioning ensures messages with the same key always go to the same partition. This keeps message order for that key and helps consumers process data correctly.
Click to reveal answer
What does Kafka's default partitioner use to assign a partition when a key is present?
AHash of the key
BRandom selection
CRound-robin
DMessage size
If a Kafka message has no key, how does the default partitioner assign partitions?
AAlways partition 0
BBased on timestamp
CRound-robin across partitions
DHash of message value
Why might you create a custom partitioner in Kafka?
ATo encrypt messages
BTo compress messages
CTo change message format
DTo control how messages are assigned to partitions
What is a key benefit of sending all messages with the same key to the same partition?
AFaster network speed
BPreserves message order for that key
CReduces message size
DImproves compression
Which interface must you implement to create a custom partitioner in Kafka?
APartitioner
BProducerInterceptor
CSerializer
DConsumerRebalanceListener
Explain how Kafka's default partitioner assigns messages to partitions when keys are present and when keys are absent.
Think about how keys affect partition choice and what happens without keys.
You got /4 concepts.
    Describe why consistent partitioning is important in Kafka and how it affects message processing.
    Consider what happens if messages with the same key go to different partitions.
    You got /4 concepts.

      Practice

      (1/5)
      1.

      What does a Kafka partitioner do?

      partitioner decides:

      easy
      A. Which partition a message is sent to
      B. How to compress messages
      C. The message format
      D. The topic name

      Solution

      1. Step 1: Understand the role of a partitioner

        A partitioner decides the partition inside a Kafka topic where a message will be stored.
      2. Step 2: Match the function to the options

        Only Which partition a message is sent to correctly describes this role.
      3. Final Answer:

        Which partition a message is sent to -> Option A
      4. Quick Check:

        Partitioner = decides message partition [OK]
      Hint: Partitioner chooses partition for messages [OK]
      Common Mistakes:
      • Confusing partitioner with compression
      • Thinking partitioner sets topic name
      • Assuming partitioner changes message format
      2.

      Which of the following is the correct way to specify a default partitioner class in Kafka producer configuration?

      props.put("partitioner.class", ?);
      easy
      A. "org.apache.kafka.clients.producer.KeyPartitioner"
      B. "org.apache.kafka.clients.producer.RoundRobinPartitioner"
      C. "org.apache.kafka.clients.producer.CustomPartitioner"
      D. "org.apache.kafka.clients.producer.internals.DefaultPartitioner"

      Solution

      1. Step 1: Recall default partitioner class name

        The default partitioner class in Kafka is DefaultPartitioner located in org.apache.kafka.clients.producer.internals.
      2. Step 2: Match the correct class name

        "org.apache.kafka.clients.producer.internals.DefaultPartitioner" matches the default partitioner class name exactly.
      3. Final Answer:

        "org.apache.kafka.clients.producer.internals.DefaultPartitioner" -> Option D
      4. Quick Check:

        Default partitioner class = DefaultPartitioner [OK]
      Hint: Default partitioner class is DefaultPartitioner [OK]
      Common Mistakes:
      • Using non-existent class names
      • Confusing round-robin with default partitioner
      • Misspelling package or class names
      3.

      Given a Kafka topic with 3 partitions and a producer sending messages with keys "key1", "key2", and "key1" again, which partitions will the messages go to if the default partitioner is used?

      medium
      A. [0, 0, 1]
      B. [1, 2, 0]
      C. [0, 1, 0]
      D. [2, 1, 0]

      Solution

      1. Step 1: Understand key-based partitioning

        Messages with the same key go to the same partition. Different keys may go to different partitions.
      2. Step 2: Assign partitions for keys

        Assuming hash(key) mod 3, "key1" maps to partition 0, "key2" maps to partition 1. So messages go to partitions [0, 1, 0].
      3. Final Answer:

        [0, 1, 0] -> Option C
      4. Quick Check:

        Same key = same partition [OK]
      Hint: Same key always same partition [OK]
      Common Mistakes:
      • Assuming keys distribute randomly
      • Assigning different partitions to same key
      • Ignoring modulo partition count
      4.

      Consider this code snippet for sending messages without keys:

      for i in range(4):
          producer.send("topic", value=f"msg{i}")

      What is the likely issue if all messages end up in the same partition?

      medium
      A. Messages have keys that force same partition
      B. Topic has only one partition
      C. The producer is not configured to use round-robin partitioning
      D. Producer is using a custom partitioner ignoring keys

      Solution

      1. Step 1: Analyze message keys and partition count

        Messages have no keys, so default partitioner uses round-robin if multiple partitions exist.
      2. Step 2: Check topic partition count

        If all messages go to the same partition, likely the topic has only one partition.
      3. Final Answer:

        Topic has only one partition -> Option B
      4. Quick Check:

        Single partition topic = all messages same partition [OK]
      Hint: Single partition topic sends all messages there [OK]
      Common Mistakes:
      • Assuming round-robin works with one partition
      • Thinking keys are present when they are not
      • Ignoring topic partition count
      5.

      You want to ensure messages with the same user ID always go to the same partition, but messages without user ID keys should be evenly distributed. Which partitioner behavior should you rely on?

      hard
      A. Default partitioner: keyed messages to same partition, unkeyed round-robin
      B. Custom partitioner that ignores keys and uses random partition
      C. Round-robin partitioner for all messages
      D. Partitioner that sends all messages to partition 0

      Solution

      1. Step 1: Understand keyed message behavior

        Default partitioner sends messages with the same key to the same partition.
      2. Step 2: Understand unkeyed message behavior

        Messages without keys are distributed evenly using round-robin by default partitioner.
      3. Step 3: Match behavior to requirement

        Default partitioner: keyed messages to same partition, unkeyed round-robin matches the requirement exactly.
      4. Final Answer:

        Default partitioner: keyed messages to same partition, unkeyed round-robin -> Option A
      5. Quick Check:

        Default partitioner fits keyed + unkeyed needs [OK]
      Hint: Default partitioner handles keyed and unkeyed well [OK]
      Common Mistakes:
      • Choosing custom partitioner ignoring keys
      • Using round-robin for keyed messages
      • Sending all messages to one partition
      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