大数据

KafKa集群partitions/replicas默认分配解析

1.Kafka集群partition replication默认自动分配分析
下面以一个Kafka集群中4个Broker举例,创建1个topic包含4个Partition,2 Replication;数据Producer流动如图所示:
(1)

Paste_Image.png

(2)当集群中新增2节点,Partition增加到6个时分布情况如下:

Paste_Image.png

副本分配逻辑规则如下:

      1.在kafka集群中,每一个Broker都有均等分配Partition的Leader机会
      2.上述图中Broker Partition中,箭头指向副本,以Partition-0为例;broker1中partition-0为Leader,Broker2中Partition-0为副本。  
      3.上述图中每个Broker(按照BrokerId有序)依次分配主Partition,下一个Broker为副本,如此循环迭代分配,多副本都遵循此规则

副本分配算法:

      1.将所有N Broker和待分配的i个Partition排序
      2.将第i个Partition分配到第(i mod n)个Broker上
      3.将第i个Partition的第j个副本分配到第((i+j) mod n )个Broker上

转自:kafka集群partitons/replicas默认分配解析