Partition Allocation

This lesson explains the algorithm used to assign topic partitions to brokers, including the case when Kafka is rack-aware.

We'll cover the following

Kafka follows an algorithm when assigning partitions of a topic to brokers. Kafka attempts to evenly divide the partitions among the brokers as much as possible. As an example, consider a topic with 5 partitions and a replication factor of 3, making for a total of 15 partition replicas to be allocated amongst 5 brokers. The general algorithm will proceed as follows:

  • There should be 3 partition replicas per broker.

  • Initially, we start with determining the locations for the partition replica leaders. In our example, the replica leader for partition 0 is placed on broker 1, the replica leader for partition 1 is placed on broker 2, the replica leader for partition 2 onto broker 3, and so on and so forth. A pictorial representation is shown below:

Broker 1 Broker 2 Broker 3 Broker 4 Broker 5
Leader Partition#0 Leader Partition#1 Leader Partition#2 Leader Partition#3 Leader Partition#4

Once the replica leaders have been assigned to the brokers, we start assigning the replica followers for each partition.

  • We start with partition 0. Its leader is already assigned to broker 1 and we need to assign two more replicas for this partition. We’ll assign the remaining replicas of partition 0 on broker 2 and broker 3. For each partition, we place the replicas at an increasing offset from the leader. The goal is not to co-locate the replicas on the same broker as the replica leader or on the same broker together.
Broker 1 Broker 2 Broker 3 Broker 4 Broker 5
Leader Partition#0 Leader Partition#1 Leader Partition#2 Leader Partition#3 Leader Partition#4
Replica Parition#0 Replica Parition#0
  • Similarly, the replicas for partition 1 get placed on broker 3 and broker 4 since the leader resides on broker 2.
Broker 1 Broker 2 Broker 3 Broker 4 Broker 5
Leader Partition#0 Leader Partition#1 Leader Partition#2 Leader Partition#3 Leader Partition#4
Replica Partition#0 Replica Partition#0 Replica Partition#1
Replica Partition#1

Get hands-on with 1200+ tech skills courses.