对已运行的kafka集群添加副本

在已经运行的kafka集群中(业务主题已创建),如果一开始配置的默认副本是1,则后续再去修改配置文件为3,也只是针对后续新增的主题有效。原先主题不会生效。需要通过json文件去修改。

先创建__consumer_offsets主题的JSON

注意json文件中的"replicas":2,1,0这些是集群中的broke,有可能有的broke是1,2,3

新建一个consumer_offsets.json的文件,内容如下

复制代码
{
"version": 1,
"partitions": [
{"topic": "__consumer_offsets","partition": 0,"replicas": [2,1]},
{"topic": "__consumer_offsets","partition": 1,"replicas": [0,2]},
{"topic": "__consumer_offsets","partition": 2,"replicas": [1,0]},
{"topic": "__consumer_offsets","partition": 3,"replicas": [2,1]},
{"topic": "__consumer_offsets","partition": 4,"replicas": [0,2]},
{"topic": "__consumer_offsets","partition": 5,"replicas": [1,0]},
{"topic": "__consumer_offsets","partition": 6,"replicas": [2,1]},
{"topic": "__consumer_offsets","partition": 7,"replicas": [0,2]},
{"topic": "__consumer_offsets","partition": 8,"replicas": [1,0]},
{"topic": "__consumer_offsets","partition": 9,"replicas": [2,1]},
{"topic": "__consumer_offsets","partition": 10,"replicas": [0,2]},
{"topic": "__consumer_offsets","partition": 11,"replicas": [1,0]},
{"topic": "__consumer_offsets","partition": 12,"replicas": [2,1]},
{"topic": "__consumer_offsets","partition": 13,"replicas": [0,2]},
{"topic": "__consumer_offsets","partition": 14,"replicas": [1,0]},
{"topic": "__consumer_offsets","partition": 15,"replicas": [2,1]},
{"topic": "__consumer_offsets","partition": 16,"replicas": [0,2]},
{"topic": "__consumer_offsets","partition": 17,"replicas": [1,0]},
{"topic": "__consumer_offsets","partition": 18,"replicas": [2,1]},
{"topic": "__consumer_offsets","partition": 19,"replicas": [0,2]},
{"topic": "__consumer_offsets","partition": 20,"replicas": [1,0]},
{"topic": "__consumer_offsets","partition": 21,"replicas": [2,1]},
{"topic": "__consumer_offsets","partition": 22,"replicas": [0,2]},
{"topic": "__consumer_offsets","partition": 23,"replicas": [1,0]},
{"topic": "__consumer_offsets","partition": 24,"replicas": [2,1]},
{"topic": "__consumer_offsets","partition": 25,"replicas": [0,2]},
{"topic": "__consumer_offsets","partition": 26,"replicas": [1,0]},
{"topic": "__consumer_offsets","partition": 27,"replicas": [2,1]},
{"topic": "__consumer_offsets","partition": 28,"replicas": [0,2]},
{"topic": "__consumer_offsets","partition": 29,"replicas": [1,0]},
{"topic": "__consumer_offsets","partition": 30,"replicas": [2,1]},
{"topic": "__consumer_offsets","partition": 31,"replicas": [0,2]},
{"topic": "__consumer_offsets","partition": 32,"replicas": [1,0]},
{"topic": "__consumer_offsets","partition": 33,"replicas": [2,1]},
{"topic": "__consumer_offsets","partition": 34,"replicas": [0,2]},
{"topic": "__consumer_offsets","partition": 35,"replicas": [1,0]},
{"topic": "__consumer_offsets","partition": 36,"replicas": [2,1]},
{"topic": "__consumer_offsets","partition": 37,"replicas": [0,2]},
{"topic": "__consumer_offsets","partition": 38,"replicas": [1,0]},
{"topic": "__consumer_offsets","partition": 38,"replicas": [2,1]},
{"topic": "__consumer_offsets","partition": 39,"replicas": [0,2]},
{"topic": "__consumer_offsets","partition": 40,"replicas": [1,0]},
{"topic": "__consumer_offsets","partition": 41,"replicas": [2,1]},
{"topic": "__consumer_offsets","partition": 42,"replicas": [0,2]},
{"topic": "__consumer_offsets","partition": 43,"replicas": [1,0]},
{"topic": "__consumer_offsets","partition": 44,"replicas": [2,1]},
{"topic": "__consumer_offsets","partition": 45,"replicas": [0,2]},
{"topic": "__consumer_offsets","partition": 46,"replicas": [1,0]},
{"topic": "__consumer_offsets","partition": 47,"replicas": [2,1]},
{"topic": "__consumer_offsets","partition": 48,"replicas": [0,2]},
{"topic": "__consumer_offsets","partition": 49,"replicas": [1,0]}
]
}

在任意一个节点上执行(只需在一个节点上执行一次)

bash 复制代码
bin/kafka-reassign-partitions.sh --zookeeper 192.168.1.1:2181 --reassignment-json-file consumer_offsets.json --execute

之后再加业务主题副本,新建一个doorinout.json的文件,内容如下

bash 复制代码
{
"version": 1,
"partitions": [
{"topic": "doorinout","partition": 0,"replicas": [2,1]},
{"topic": "doorinout","partition": 1,"replicas": [0,2]},
{"topic": "doorinout","partition": 2,"replicas": [1,0]},
]
}

在任意一个节点上执行(只需在一个节点上执行一次)

bash 复制代码
bin/kafka-reassign-partitions.sh --zookeeper 192.168.1.1:2181 --reassignment-json-file doorinout.json --execute
相关推荐
donk13147 小时前
React Native for OpenHarmony 实战:三方库 react-native-step-indicator 的鸿蒙化适配指南
分布式·react native·react.js·wpf·harmonyos
梅菲塔亚9 小时前
Ceph分布式存储
分布式·ceph
acrel711 小时前
Acrel-1000系列分布式光伏监控系统在湖北荆门一马光彩大市场屋顶光伏发电项目中应用
分布式·光伏并网
程序 代码狂人11 小时前
金融数仓体系与核心业务知识详解
大数据·分布式·spark
RobinXYuan11 小时前
【Kafka 源码手记】02 Kafka 的核心哲学:Everything Is A Log
kafka·源码阅读
java_nnnn14 小时前
Redis 初识:从单体架构到分布式架构的演进
redis·分布式·架构
Sayai14 小时前
Kafka 2.8→3.9.1 跨大版本升级实战:ZooKeeper 同步升级、数据目录迁移与回滚预案全流程
大数据·运维·分布式·zookeeper·kafka
敲上瘾14 小时前
分布式系统——Redis哨兵:自动故障转移与选举原理
linux·数据库·redis·分布式·缓存·微服务
微三云 - 廖会灵 (私域系统开发)1 天前
供应链系统实战:多渠道订单聚合与分布式库存一致性方案总结
开发语言·分布式·php