Kafka分区副本分配规则

Kafka分区副本分配规则

文章目录

  • Kafka分区副本分配规则
    • 1、前言
    • 2、自动分配
      • a. 无机架方式分配
      • b. 有机架方式分配
        • (1)机架介绍
        • (2)有机架方式分配的目的
        • (3)分配规则
      • c. 问题
    • 3、指定分配规则分配
    • 参考文献

1、前言

 我们在创建topic或者是新增分区时,如果不指定分区副本的分配方式,Kafka会自动帮我们分配,那Kafka是如何帮我们分配的呢?我们如果指定分区副本的分配方式,Kafka会做哪些事情呢?今天我们就来介绍一下。

2、自动分配

Kafka分区副本自动分配在三个地方用到,它们分别是:

  1. 创建topic时
  2. topic新增分区时
  3. 使用脚本自动重分配副本时

我们可以通过配置启动类参数生成分配策略

--zookeeper xxxx:2181 --topics-to-move-json-file config/move-json-file.json --broker-list "0,1,2,3" --generate  
move-json-file.json文件中内容为:
{
   
   
  "topics":[
    {
   
   "topic":"topicTest"}
  ],
 "version":1
}
以上参数表示为对topicTest重分配,希望分配到0123这几个broker上

重分配的源码是在ReassignPartitionsCommand.generateAssignment中

def generateAssignment(zkClient: KafkaZkClient, brokerListToReassign: Seq[Int<

你可能感兴趣的:(Kafka,kafka,java,分区副本,机架,扩缩分区)