前言
RocketMQ 以其高效和稳定性著称,但在实际落地时,网络隔离往往是最大的拦路虎。本地调试顺畅,一旦涉及外网访问,要么申请公网 IP,要么折腾复杂的端口映射,不仅耗时还容易出错。
RocketMQ 5.x 版本相比停更的 4.x 更加稳定,且支持轻量级单机部署,完全能满足开发测试甚至部分生产场景的需求。关键在于如何突破内网限制,实现异地调试和协作。本文将分享在 Linux 环境下完整部署 RocketMQ 的流程,并介绍如何通过内网穿透工具轻松实现公网访问。
1. 前提条件
环境准备
首先确保服务器已安装 JDK。RocketMQ 5.x 建议运行环境内存至少 12GB。
java -version
下载资源
推荐使用最新的 5.3.4 版本。4.x 系列已停止维护,不建议在新项目中采用。
2. 安装 RocketMQ
将下载的二进制包上传至 /app/rocketmq 目录。
mkdir -p /app/rocketmq
cd /app/rocketmq
解压文件并重命名目录,方便后续管理:
unzip rocketmq-all-5.3.4-bin-release.zip
mv rocketmq-all-5.3.4-bin-release rocketmq
3. 配置 RocketMQ
3.1 修改启动脚本
我们需要调整 runserver.sh 和 runbroker.sh,确保 JVM 参数和 JDK 路径正确。如果你的机器内存充足,默认参数通常也能跑通,但显式指定 JDK 路径能避免兼容性问题。
编辑 runserver.sh:
vi /app/rocketmq/rocketmq/bin/runserver.sh
找到 JDK 路径配置项,将其修改为当前服务器的实际路径(可通过 which java 确认)。
同理,编辑 runbroker.sh:
vi /app/rocketmq/rocketmq/bin/runbroker.sh
确保这里的 JDK 路径与 runserver.sh 一致。
3.2 新增 Broker 配置
创建或编辑 broker.conf 配置文件,指定 NameServer 地址和本机 IP。
vi /app/rocketmq/rocketmq/conf/broker.conf
填入以下内容:
namesrvAddr = localhost:9876
brokerIP1 = localhost
注意:如果是公网穿透场景,这里暂时保持 localhost,后续通过隧道映射即可,无需修改为公网 IP。
3.3 启动与验证
先创建日志目录,然后使用 nohup 后台启动服务。
mkdir -p /data/logs/rocketmq
# 启动 NameServer
nohup sh /app/rocketmq/rocketmq/bin/mqnamesrv > /data/logs/rocketmq/nameserver.log &
sh /app/rocketmq/rocketmq/bin/mqbroker -n localhost:9876 autoCreateTopicEnable= > /data/logs/rocketmq/broker.log &


