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消息
相关推荐
蜜獾云2 天前
rocketmq traceId重复问题
spring·rocketmq·java-rocketmq
weisian1513 天前
Java并发编程--51-详解RocketMQ:高可靠消息中间件的核心特性与生产实践
java·rocketmq·java-rocketmq·事务消息
qq_297574673 天前
RocketMQ 系列文章(高级篇第 4 篇):消息过滤、延迟消息与死信队列深度应用实战
rocketmq
开发者联盟league5 天前
在windows上安装和运行rocketmq
windows·rocketmq
冷小鱼5 天前
消息队列(MQ)技术全景科普:从选型到AI+未来
人工智能·kafka·rabbitmq·rocketmq·mq·pulsar
筠·6 天前
Docker Compose 部署 RocketMQ
docker·rocketmq·java-rocketmq
Rcnhtin10 天前
RocketMQ
java·linux·rocketmq
qq_2975746710 天前
RocketMQ 系列文章(高级篇第 1 篇):高可用集群部署与运维监控实战指南
运维·rocketmq·java-rocketmq
成为大佬先秃头11 天前
解决RocketMQ-Dashboard开启登录认证后不生效
rocketmq
卷毛的技术笔记12 天前
从“拆东墙补西墙”到“最终一致”:分布式事务在Spring Boot/Cloud中的破局之道
java·spring boot·分布式·后端·spring cloud·面试·rocketmq