RocketMQ集群4.9.2升级4.9.6版本

本文主要记录生产环境短暂停机升级RocketMQ版本的过程

一、整体思路

1.将生产环境MQ4.9.2集群同步到测试环境,并启动,确保正常运行。

2.参照4.9.2配置4.9.6集群

3.停掉4.9.2集群,启动4.9.6集群,测试确保正常运行。

4.停掉4.9.6集群,复制4.9.2集群的store存储文件夹到4.9.6,再次启动观察有无异常,Topic及历史消息是否可以正常查询和使用。

5.停掉4.9.6集群,再启动4.9.2集群,确保两个版本的集群都正常可用,无异常,目的是保证都可用,再生产机器升级遇到问题时可以及时切回老版本,不至于长时间停机影响业务。

6.生产环境备份4.9.2集群

7.生产环境配置4.9.6集群(参照测试环境配置过程)

8.生产环境停机4.9.2集群,复制store存储目录到4.9.6集群,启动4.9.6集群,并测试4.9.6有无异常。

注意:1-5步骤在测试机器进行,重点是验证升级思路及可行性,避免在生产环境升级时遇到问题不能及时解决导致消息队列长时间停机。6-8步骤在生产环境进行,第8步骤生产MQ停机约在10分钟左右。

二、实际操作(生产环境单机双主双从异步集群)

1.上传4.9.6mq程序包并解压

2.调整/rocketmq-4.9.6/bin目录下runserver.sh、runbroker.sh里的JVM内存参数(参照4.9.2版本的JVM参数即可)。

3.rocketmq-4.9.6/conf/2m-2s-async添加配置文件(可以直接copy原4.9.2的,再逐个检查修改):

4.在rocketmq-4.9.6目录下创建logs文件夹用于存储日志文件(我在broker中配置了日志输出在/rocketmq-4.9.6/logs下)

5.调整LINUX机器ROCKETMQ_HOME环境变量到4.9.6目录,并重新加载确保可用。

bash 复制代码
修改/etc/profile文件,
修改后可以通过命令 echo $ROCKETMQ_HOME  查询环境变量信息,
若未改变,需要通过命令 source /etc/profile 重新加载下即可。

6.停机4.9.2集群,复制store存储目录到4.9.6,启动4.9.6集群。

提示:此步骤涉及到生产环境MQ停机,停机时间越短越好,故提前准备好4.9.2停机命令、store存储目录复制命令、4.9.6集群启动命令等,避免因LINUX命令不熟悉延长停机时间。

7.通过rocketmq-dashboard仪表板查看MQ启动情况,并及时进行消息的生产和消费测试,第一时间确保升级后无异常。

启动命令:

bash 复制代码
# namesrv启动
nohup ${ROCKETMQ_HOME}/bin/mqnamesrv -c ${ROCKETMQ_HOME}/conf/2m-2s-async/namesrv-a.properties &>${ROCKETMQ_HOME}/logs/mqnamesrv_a.log 2>&1 &
nohup ${ROCKETMQ_HOME}/bin/mqnamesrv -c ${ROCKETMQ_HOME}/conf/2m-2s-async/namesrv-b.properties &>${ROCKETMQ_HOME}/logs/mqnamesrv_b.log 2>&1 &
#broker启动
nohup ${ROCKETMQ_HOME}/bin/mqbroker -c ${ROCKETMQ_HOME}/conf/2m-2s-async/broker-a.properties &>${ROCKETMQ_HOME}/logs/broker_a.log 2>&1 &
nohup ${ROCKETMQ_HOME}/bin/mqbroker -c ${ROCKETMQ_HOME}/conf/2m-2s-async/broker-a-s.properties &>${ROCKETMQ_HOME}/logs/broker_as.log 2>&1 &
nohup ${ROCKETMQ_HOME}/bin/mqbroker -c ${ROCKETMQ_HOME}/conf/2m-2s-async/broker-b.properties &>${ROCKETMQ_HOME}/logs/broker_b.log 2>&1 &
nohup ${ROCKETMQ_HOME}/bin/mqbroker -c ${ROCKETMQ_HOME}/conf/2m-2s-async/broker-b-s.properties &>${ROCKETMQ_HOME}/logs/broker_bs.log 2>&1 &

三、发送消息测试过程记录

  1. 生产者发送MQ消息:

2.rocketmq-dashboard仪表板查看刚刚发送的消息

  1. 消费者成功消费MQ消息
相关推荐
百思可瑞教育10 小时前
ActiveMQ、RocketMQ、RabbitMQ、Kafka 的全面对比分析
vue.js·分布式·rabbitmq·rocketmq·activemq·北京百思可瑞教育·百思可瑞教育
王嘉俊9253 天前
深入浅出 全面剖析消息队列(Kafka,RabbitMQ,RocketMQ 等)
分布式·kafka·消息队列·rabbitmq·rocketmq
友莘居士3 天前
长流程、复杂业务流程分布式事务管理实战
spring boot·rocketmq·saga·复杂流程分布式事务·长流程
缘来如此095 天前
Kafka&RocketMQ重平衡容灾机制
分布式·kafka·rocketmq
富士康质检员张全蛋6 天前
消息存储机制-索引文件及页缓存
rocketmq
鼠鼠我捏,要死了捏11 天前
Kafka、RabbitMQ 与 RocketMQ 在高并发场景下的高可用与性能对比分析
kafka·rabbitmq·rocketmq
yourkin66612 天前
RocketMQ 分布式事务方案
分布式·rocketmq
现在,此刻19 天前
面试题储备-MQ篇 2-说说你对RocketMQ的理解
java·rocketmq·java-rocketmq
Apache RocketMQ21 天前
云原生事件驱动引擎(RocketMQ-EventBridge)应用场景与技术解析
云原生·消息队列·rocketmq·事件驱动引擎