Kafka 手动调整分区副本存储
在生产环境中,每台服务器的配置和性能不一致,但是Kafka只会根据自己的代码规则创建对应的分区副本,就会导致个别服务器存储压力较大。所有需要手动调整分区副本的存储。
测试:创建一个新的topic,3个分区,2个副本,名称为test-topic01。将 该topic的所有副本都存储到broker0和broker1两台服务器上。
手动调整分区副本存储的步骤如下:
(1)创建一个新的 topic
kafka-topics.sh --zookeeper master:2181 --create --partitions 3 --replication-factor 2 --topic test-topic01
(2)查看分区副本存储情况。
kafka-topics.sh --zookeeper master:2181 --describe --topic test-topic01
(3)创建副本存储计划(所有副本都指定存储在 broker0、broker1 中)。
#在kafka安装路径下 vim increase-replication-factor.json { "version":1, "partitions":[{"topic":"test-topic01","partition":0,"replicas":[0,1]}, {"topic":"test-topic01","partition":1,"replicas":[0,1]}, {"topic":"test-topic01","partition":2,"replicas":[1,0]}] }
(4)执行副本存储计划。
kafka-reassign-partitions.sh --zookeeper master:2181 --reassignment-json-file increase-replication-factor.json --execute
(5)验证副本存储计划。
kafka-reassign-partitions.sh --zookeeper master:2181 --reassignment-json-file increase-replication-factor.json --verify
(6)查看分区副本存储情况。
kafka-topics.sh --zookeeper master:2181 --describe --topic test-topic01