生产环境一键创建kafka集群
前段时间公司的一个kafka集群出现了故障,由于之前准备不足,当时处理的比较慌乱。如:由于kafka的集群里topic数量较多,并且每个topic的分区数量和副本数量都不是一样的,如果按部就班的一个一个的去创建队列,估计集群恢复时黄瓜菜都凉了。
对于kafka集群出现故障,最快的处理办法,就是重建集群,然后在新的集群上将队列相关信息全部按原集群重建一遍。本人利用端午假期,写了一个python脚本(这是第二次撸python,能用就好,各位要求不要太高哈),可以实现一键功能。
1.首先将此脚本(topic.py),放到kafka的bin目录下;
2.执行python topic.py命令
3.输入原集群的zookeeper地址,回车
4.输入新集群的zookeeper地址,回车
5.控制台输出topic创建相关的信息,检查新集群,可以发现旧集群中所有的topic全部按原样重新在新集群中创建了一遍
topic.py脚本如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import os from sys import stdin import re print 'input source kafka zookeeper address. eg:127.0.0.1:2181' value = stdin.readline().replace( "\n" , "") print 'input target kafka zookeeper address. eg:127.0.0.1:2181' target = stdin.readline().replace( "\n" ,"") value2 = './kafka-topics.sh --describe --zookeeper ' + value value2 = value2 + ' | grep ^Topic' output = os.popen(value2) text = output.readline() while (text ): strs = text.split() outtemp = os.popen( './kafka-topics.sh --create --topic ' + strs[ 0 ].replace( "Topic:" ," ") +' --partitions '+strs[1].replace(" PartitionCount: "," ") + ' --replication-factor ' +strs[2].replace(" ReplicationFactor: "," ") + ' --if-not-exists --zookeeper ' + target) print outtemp.readline() text = output.readline() outtemp.close() output.close() |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?