kafka优选副本切换办法

南墨10个月前技术文章246

      1. 以topic test为例,假设test的分布为以下状态。

Topic:test PartitionCount:3 ReplicationFactor:2 Configs:

Topic: test Partition: 0 Leader: 1 Replicas: 1,2 Isr: 1,2

Topic: test Partition: 1 Leader: 2 Replicas: 2,3 Isr: 2,3

Topic: test Partition: 2 Leader: 3 Replicas: 3,1 Isr: 1,3

2.  假设现在broker-1节点出现问题,希望parititon-0的优先副本发生切换,即由Replicas: 1,2变为

Replicas: 2,1,于此同时,leader由1切换到2。

首先编写迁移文件move.json,内容如下:

{"partitions": [{"topic": "test", "partition": 0, "replicas": [2,1] }],"version":1}

其中,文件的意义是:修改调换partition 0 的replicas的顺序为[2,1]

3.  执行迁移脚本

sh kafka-reassign-partitions.sh --zookeeper zookeeper_IP:24002/kafka --reassignment-json-file move.json --execute

执行完成后的结果为:

Topic:test PartitionCount:3 ReplicationFactor:2 Configs:

Topic: test Partition: 0 Leader: 1 Replicas: 2,1 Isr: 1,2

Topic: test Partition: 1 Leader: 2 Replicas: 2,3 Isr: 2,3

Topic: test Partition: 2 Leader: 3 Replicas: 3,1 Isr: 1,3

此时,partition-0的副本顺序变为了Replicas: 2,1

构建副本切换文件

创建excution.json,内容为:

{"partitions":[{"topic": "test", "partition": 0}]}

执行副本切换脚本

kafka-preferred-replica-election.sh --zookeeper zookeeper_IP:24002/kafka --path-to-json-file excution.json

执行后结果如下:

Topic:test PartitionCount:3 ReplicationFactor:2 Configs:

Topic: test Partition: 0 Leader: 2 Replicas: 2,1 Isr: 1,2

Topic: test Partition: 1 Leader: 2 Replicas: 2,3 Isr: 2,3

Topic: test Partition: 2 Leader: 3 Replicas: 3,1 Isr: 1,3

此时,leader已切换broker-2


kafka-preferred-replica-election.sh 可以不加后面的副本切换脚本而直接执行,例如:

kafka-preferred-replica-election.sh --zookeeper zookeeper_IP:2181/kafka,这样会将真个集群的leader全部调整到优选副本


相关文章

数据湖技术之iceberg(十二)Flink与Iceberg整合-SQL API操作

数据湖技术之iceberg(十二)Flink与Iceberg整合-SQL API操作

1.SQL API 创建Iceberg表并写入数据StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnv...

rabbitmq-迁移方案

rabbitmq-迁移方案

rabbitmq共有两种迁移方案:迁移方式优点缺点可用性原理文件导入方式数据100%成功业务要修改地址暂停提供服务可以使用拷贝元数据方式添加集群方式不可用,数据会丢失(添加机器之前会清空之前所有的信息...

hive部署

安装前准备修改环境变量vi /etc/profile 添加内容如下:(hive节点都要执行)export HIVE_HOME=/opt/hiveexport PATH=$PATH:$HIVE_HOME...

Dockerfile

Dockerfile

一、什么是镜像?镜像可以看成是由多个镜像层叠加起来的一个文件系统(通过UnionFS与AUFS文件联合系统实现),镜像层也可以简单理解为一个基本的镜像,而每个镜像层之间通过指针的形式进行叠加。根据上图...

Flink部署

安装前准备1.1. 添加环境变量vi /etc/profile export FLINK_HOME=/opt/flinkexport PATH=$PATH:$FLINK_HOME/bin source...

Hive压测之开源Hive基准测试工具(hive-testbench-hive14)

Hive压测之开源Hive基准测试工具(hive-testbench-hive14)

此文章禁止转载概述Hive基准测试工具工具,可用来造数测试Hive基本性能。TPC-DS:提供一个公平和诚实的业务和数据模型,99个案例TPC-H:面向商品零售业的决策支持系统测试基准,定义了8张表,...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。