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消息
相关推荐
不想睡觉的橘子君1 天前
【MQ】RabbitMQ、RocketMQ、kafka特性对比
kafka·rabbitmq·rocketmq
厌世小晨宇yu.2 天前
RocketMQ学习笔记
笔记·学习·rocketmq
洛卡卡了3 天前
如何选择最适合的消息队列?详解 Kafka、RocketMQ、RabbitMQ 的使用场景
kafka·rabbitmq·rocketmq
菜鸟起航ing4 天前
Spring Cloud Alibaba
spring cloud·java-ee·rocketmq
乄bluefox4 天前
学习RocketMQ(记录了个人艰难学习RocketMQ的笔记)
java·spring boot·中间件·rocketmq
虽千万人 吾往矣7 天前
golang rocketmq开发
开发语言·golang·rocketmq
HippoSystem7 天前
[RocketMQ 5.3.1] Win11 + Docker Desktop 本地部署全流程 + 踩坑记录
rocketmq
幸运小锦李先生11 天前
基于RabbitMQ,Redis,Redisson,RocketMQ四种技术实现订单延时关闭功能及其相关优缺点介绍(以12306为主题)
redis·rabbitmq·rocketmq·redisson·1024程序员节
₁ ₀ ₂ ₄13 天前
一篇文章了解RocketMQ基础知识。
分布式·中间件·rocketmq·1024程序员节
炭烤玛卡巴卡14 天前
【MacOS】RocketMQ 搭建Java客户端
macos·rocketmq·java-rocketmq