一 调整副本存储
1.1 需求背景描述
在生产环境中,每台服务器的配置和性能不一致,但是
Kafka
只会根据自己的代码规则创建对应的分区副 本,就会导致个别服务器存储压力较大。所有需要手动调整分区副本的存储,如下图
需求:创建一个新的topic,4个分区,两个副本,名称为three。将 该topic的所有副本都存储到broker0和 broker1两台服务器上。
1.2 修改操作步骤
手动调整分区副本存储的步骤如下:
1.创建一个新的
topic
,名称为
three
。
[atguigu@hadoop102 kafka]$
bin/kafka-topics.sh --bootstrap-server
hadoop102:9092 --create --partitions 4 --replication-factor 2 -- topic three
2.
查看分区副本存储情况
[atguigu@hadoop102 kafka]$
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --describe --topic three
3.
创建副本存储计划(所有副本都指定存储在
broker0
、
broker1
中)
[atguigu@hadoop102 kafka]$ vim increase-replication-factor.json
文本内容:
{
"version":1,
"partitions":[{"topic":"three","partition":0,"replicas":
[0,1]},
{"topic":"three","partition":1,"replicas"
:[0,1]},
{"topic":"three","partition":2,"replica
s":[1,0]},
{"topic":"three","partition":3,"replicas"
:[1,0]}]
}
4.执行副本存储计划
[atguigu@hadoop102 kafka]$
bin/kafka-reassign-partitions.sh --
bootstrap-server hadoop102:9092 --reassignment-json-file increase-replication-factor.json --execute
5.
验证副本存储计划
[atguigu@hadoop102 kafka]$ bin/
kafka-reassign-partitions.sh
--
bootstrap-server hadoop102:9092 --reassignment-json-file increase-replication-factor.json --verify
6.
查看分区副本存储情况
[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --bootstrap-server
hadoop102:9092
--describe
--topic three
二 leader分区再平衡
2.1 描述
正常情况下,
Kafka
本身会自动把
Leader Partition
均匀分散在各个机器上
,来保证每台机器的读写吞吐量都是均匀的。但是如果
某 些broker
宕机
,
会导致
Leader Partition
过于集中在其他少部分几台
broker
上
,这会导致少数几台
broker
的读写请求压力过高,其他宕机的 broker重启之后都是
follower partition
,读写请求很低,
造成集群负载不均衡。
2.2 调整参数
根据情况调整这3个参数的配置