Rocketmq有带图形界面的控制台,这次公司环境迁移,需要把jl环境的topic及消费组加到另一个Rocketmq集群,如果在web控制台一个个点太费时间了,可以通过命令行批量添加。
场景一
如果是两个Rocketmq集群,先从A集群导出topic及消费组列表,再到B集群批量创建。
比如我们公司是以%前面来区别不同的环境的,A集群是以jl%开头:
获取topic列表
1 | ./mqadmin topicList -n $NAMESRV_ADDR | grep "^jl%" > jl_topics.txt |
获取消费组列表
1 | ./mqadmin consumerProgress -n $NAMESRV_ADDR | grep "jl%" | awk '{print $1}' | sort | uniq > jl_consumer_groups.txt |
把列表传到B集群的机器,然后编写批量创建jltest%开头的脚本:
批量创建topic
1 |
|
批量创建消费组
1 |
|
场景二
如果不是两个集群,而是同一个集群,需要从jl环境创建一份到jltest环境,可以用如下的脚本:
完整脚本
1 |
|
详细的Rocket MQ命令参数可参考:15 RocketMQ 常用命令实战