使用该分区策略的条件
broker包含机架信息,且未使用replica-assignment参数
和kafka主题的分区分配策略(一)的相同和不同之处
假设目前有3个机架,9个broker,机架和broker结点的对照关系入下表
机架 | broker
—|—
rack1 | 0,1,2
rack2 | 3,4,5
rack3 | 6,7,8
相同点
分区的broker分配步骤和kafka主题的分区分配策略(一)基本相同。
不同点
不同点1
kafka主题的分区分配策略(一)的assignReplicasToBrokersRackUnaware()方法里的brokerArray变量的值为[0,1,2,3,4,5,6,7,8]
而assignReplicasToBrokersRackUnaware()方法里的brokerArray变量的值为[0,3,6,1,4,7,2,5,8],这是论询各个机架产生的结果,如此新的brokerArray中包含了简单的机架分配信息。
不同点2
给分区分配的broker需要经过一层过滤