kafka leader倾斜问题一解

最近做一组kafka集群的迁移,但是版本比较老,还是0.10.1.1这个版本,但是迁移做完之后用kafka manager看到居然有leader skewed了,但是这个问题其实不大,不会影响使用。

这里我们看到broker 0居然在7个partition作为leader,而broker 3就3个partition作为leader。

看下面详细的我们就可以看到确实如此。

这里我们实际操作就分为2步。

第一步是使用kafka-reassign-partitions.sh来迁移

生成一个对应的move.json

1
2
3
4
5
{"version":1,
"partitions":[
{"topic":"messages","partition":2,"replicas":[3,0]},
{"topic":"messages","partition":5,"replicas":[3,0]}
]}

执行一下迁移,因为对应的broker没有变化,只是前后顺序变了,所以非常快

1
./kafka-reassign-partitions.sh -zookeeper timo-zk1:2181 --reassignment-json-file move.json --execute

查看迁移的进度

1
./kafka-reassign-partitions.sh -zookeeper timo-zk1:2181 --reassignment-json-file move.json --verify

这样执行完本来以为好了,但是发现倾斜还是存在,因为kafka的leader没有变化,所以要重新改下leader

生成一个move-leader.json

1
2
3
4
{"partitions":[
{"topic":"messages","partition":2},
{"topic":"messages","partition":5}
]}
1
./kafka-preferred-replica-election.sh --zookeeper timo-zk:2181 --path-to-json-file move-leader.json

好了,收工。