推荐使用RocketMQ 5.3.x(如5.3.4)单机部署,需JDK 1.8+、内存≥4GB、开放9876/10911等端口;下载二进制包解压后,调优runserver.sh/runbroker.sh的JVM参数,配置broker.conf中namesrvAddr和brokerIP1为真实IP,按序启动NameServer与Broker并验证日志及连通性。

Linux 下部署 RocketMQ 并非难事,关键在于版本选对、配置调准、网络通透。当前推荐使用 5.3.x 系列(如 5.3.4),4.x 版本已停止维护,不建议用于新项目。
环境准备与基础依赖
确保系统满足以下硬性条件:
- JDK 1.8+(必须,RocketMQ 5.x 不兼容 JDK 17+):执行 java -version 验证,若未安装可直接用 yum install java-1.8.0-openjdk-devel(CentOS)或 apt install openjdk-8-jdk(Ubuntu)快速安装
- 内存 ≥ 4GB:RocketMQ 启动脚本默认分配较大堆内存,小内存机器需手动调整 JVM 参数
- 磁盘空间 ≥ 10GB:消息存储、日志、索引等会持续增长,建议单独挂载数据盘
- 开放端口:NameServer 默认 9876,Broker 默认 10911(主)、10912(从)、10909(Proxy),防火墙需放行
下载解压与目录规范
推荐使用二进制包(免编译,开箱即用):
- 下载最新稳定版(如 5.3.4):wget https://archive.apache.org/dist/rocketmq/5.3.4/rocketmq-all-5.3.4-bin-release.zip
- 解压到统一路径,例如 /opt/rocketmq:unzip rocketmq-all-5.3.4-bin-release.zip -d /opt
- 重命名并建立软链便于后续升级:mv /opt/rocketmq-all-5.3.4-bin-release /opt/rocketmq && ln -sf /opt/rocketmq /opt/rocketmq-current
- 创建必要目录:mkdir -p /data/logs/rocketmq /data/store/{commitlog,consumequeue,index}
核心配置调优要点
三处关键配置直接影响稳定性与外网可达性:
- runserver.sh / runbroker.sh:修改 JVM 堆大小(如 -Xms2g -Xmx2g),并确认 JAVA_HOME 指向正确 JDK 路径(可用 which java 查找)
-
conf/broker.conf:必须设置以下三项:
namesrvAddr=你的服务器IP:9876(不能写 localhost)
brokerIP1=你的服务器公网或内网IP(决定客户端实际连接地址)
autoCreateTopicEnable=true(开发环境可开,生产建议关闭并预建 Topic) - 日志路径:编辑 conf/logback_nameserver.xml 和 conf/logback_broker.xml,将 ${user.home} 替换为 /data/logs/rocketmq
启动服务与验证连通性
按顺序启动,避免依赖错乱:
- 启动 NameServer:nohup sh bin/mqnamesrv -n 0.0.0.0:9876 > /data/logs/rocketmq/namesrv.log 2>&1 &
- 启动 Broker(带 Proxy 支持):nohup sh bin/mqbroker -n 0.0.0.0:9876 -c conf/broker.conf --enable-proxy > /data/logs/rocketmq/broker.log 2>&1 &
- 验证日志:tail -f /data/logs/rocketmq/namesrv.log 看到 "The Name Server boot success";tail -f /data/logs/rocketmq/broker.log 看到 "boot success" 即成功
- 测试连通性:在另一台机器执行 export NAMESRV_ADDR=你的IP:9876 && sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer,能打印 SEND_OK 表示链路通畅
部署完成后的第一件事,是把 NAMESRV_ADDR 环境变量写入客户端应用,或通过 Spring Boot 的 rocketmq.name-server 属性显式指定。不复杂但容易忽略。


















