RocketMQ4.1.0灾备恢复方案

一、 正常运行中集群状态(双机双主)以及宕机状态

准备三台机器192.168.213.145/128/129;192.168.213.129为宕机恢复集群所用机器;
双主集群:
192.168.213.145:30011
192.168.213.128:30011
正常运行状态:
cd ~/rocketmq4.1/bin/
sh mqadmin clusterList -n 192.168.213.145:30011 查看集群节点信息
sh mqadmin topicList -n 192.168.213.145:30011 查看Topic信息
1.png
sh mqadmin statsAll -n 192.168.213.145:30011 查看24小时内每秒的消息吞吐量,以及消息生产消费总量
2.png
宕机时状态:
在broker-a主机192.168.213.145上进行集群查询,状态异常;
3.png

二、 部署新的RocketMQ节点(namesrv和broker节点)

RocketMQ版本以及配置文件保持和原来的一致(这里以RocketMQ4.1.0为例)
旧配置文件
mqnamesrv.properties
listenPort=30011
broker-a.properties
brokerClusterName=TEST_Cluster
brokerName=broker-a
brokerId=0
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
namesrvAddr=192.168.213.145:30011;192.168.213.128:30011
brokerIP1=192.168.213.145
autoCreateTopicEnable=false
autoCreateSubscriptionGroup=false
listenPort=10911
broker-b.properties
brokerClusterName=TEST_Cluster
brokerName=broker-b
brokerId=0
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
namesrvAddr=192.168.213.145:30011;192.168.213.128:30011
brokerIP1=192.168.213.128
autoCreateTopicEnable=false
autoCreateSubscriptionGroup=false
listenPort=10911
假如broker-b所在机器宕机,新的broker-b配置文件broker-b.properties
broker-b.properties
brokerClusterName=TEST_Cluster
brokerName=broker-b
brokerId=0
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
namesrvAddr=192.168.213.145:30011;192.168.213.129:30011
brokerIP1=192.168.213.129
autoCreateTopicEnable=false
autoCreateSubscriptionGroup=false
listenPort=10911
最终的broker-a配置文件broker-a.properties
broker-a.properties
brokerClusterName=TEST_Cluster
brokerName=broker-a
brokerId=0
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
namesrvAddr=192.168.213.145:30011;192.168.213.129:30011
brokerIP1=192.168.213.145
autoCreateTopicEnable=false
autoCreateSubscriptionGroup=false
listenPort=10911

三、 数据迁移

宕机节点数据迁移,进行集群恢复

同步宕机机器上数据文件(或者磁盘挂载)至新机器:
在宕机机器(192.168.213.128)上分别执行以下同步命令:
rsync -avP ~/ rocketmq4.1/logs docker@192.168.213.129:/home/docker/data/
rsync -avP ~/store docker@192.168.213.129:/home/docker/data/
image.png
在192.168.213.129上创建软链指向拷贝而来的数据目录:
image.png
注意:
由于从宕机机器同步而来的store目录下存在abort文件(由于异常关闭而未来得及删除的文件),所以当启动新节点的时候会有一个校验数据的过程。

image.png

注意V4.1.0和V3.5.8(以某项目152.14/15为例)在此步骤的区别:

在宕机机器上先后执行如下命令:
rsync -avP ~/ rocketmq/logs docker@192.168.213.129:/home/docker/data/
rsync -avP ~/rocketmq/store docker@192.168.213.129:/home/docker/data/
在新节点机器上创建数据指向软链命令:
cd ~/rocketmq/
ln –s ~/data/store store
ln –s ~/data/logs logs

2、丢弃宕机节点数据,进行集群恢复

直接进入下一步,启动提前准备好的新节点。
##四、 启动新节点,检查集群状态
在192.168.213.129上rocketmq的bin目录下执行以下命令启动新的节点:
nohup sh mqnamesrv -c …/conf/mqnamesrv.properties &
image.png
nohup sh mqbroker -c …/conf/2m-noslave/broker-b.properties &
image.png
在192.168.213.129上执行命令,出现如图为正常;
sh mqadmin clusterList -n 192.168.213.129:30011
image.png
sh mqadmin topicList -n 192.168.213.129:30011
image.png
在192.168.213.145上执行命令,出现下图为正常;
sh mqadmin clusterList -n 192.168.213.145:30011
image.png
宕机域名切换至新加入集群节点所在机器IP192.168.213.129,逐个重启旧的未宕机节点192.168.213.145
sh mqshutdown broker
sh mqshutdown namesrv
image.png
image.png
修改未宕机节点所在机器192.168.213.145上rocketmq的配置文件
旧环境配置文件:
image.png
把上图中红色框线部分修改为新的namesrv服务地址,如下图:
image.png
重新启动旧的未宕机节点192.168.213.145
nohup sh mqnamesrv -c …/conf/mqnamesrv.properties &
image.png
image.png
image.png
image.png
检查集群状态,以及运行情况:
在192.168.213.145:执行命令sh mqadmin clusterList -n 192.168.213.145:30011
sh mqadmin statsAll -n 192.168.213.145:30011
image.png
在192.168.213.129:执行命令sh mqadmin clusterList -n 192.168.213.129:30011
sh mqadmin statsAll -n 192.168.213.129:30011
image.png
如上图,集群状态恢复正常。

五、 跟踪观察集群状态变化,观察业务日志是否正常。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值