机架使用场景
Kafka Broker提供机架配置的能力,在副本分配阶段根据机架将副本分配到不同机架的Kafka Broker中,以提升副本的容错能力。
常见使用场景:
- 集群内首次配置机架感知能力,提升副本容错性。
- 集群已开启机架后,扩容新的kafka broker节点,则需要为新扩容的节点配置机架信息。
机架配置方法
Kafka机架配置可直接在TM上进行操作,需要按节点维度将所有的broker配置broker.rack属性,操作路径为“集群服务--->Kafka--->配置管理--->维度--->选择节点维度--->选择节点信息--->选择server.properties--->新增配置项--->新增broker.rack属性--->保存--->下发”,如下图所示。

所有节点都配置并下发完成后,将kafka集群重启即可。
注意,需要对所有的节点配置不同的机架信息,如果有节点配置了机架,而有些节点未配置机架,则在副本分配阶段会报错Not all brokers have rack information for replica rack aware assignment,如下图所示:
验证机架配置是否生效
机架的是否生效体现在以下两点:
- 所有的Kafka Broker节点的server.properties配置了broker.rack属性,执行以下命令。
cat /usr/local/service/kafka/config/server.properties | grep "broker.rack"
结果例如下图所示:
2. 创建一个新的topic(创建topic和查看topic的方法参考常用命令)。如果副本数不大于机架数,该topic的每个分区的不同副本必分配在不同的机架对应的kafka broker上。如果副本数大于机架数,则每个机架上必定存在该topic的同一个分区的一个或多个副本。
举例来说,1001的broker.rack是/rack2,1002和1003的broker.rack是/rack1,创建一个五分区两副本的topic,其副本分布如下图所示: