背景与目标
在 Linux 服务器上部署 RocketMQ 后,内网测试通常顺畅,但外网访问常受网络隔离限制。本文介绍一套从基础部署到利用内网穿透工具实现公网远程连接的完整方案,无需申请公网 IP 或配置复杂端口映射。
前置环境
JDK 安装 确保服务器已安装 JDK,版本建议 1.8 或以上:
java -version
资源要求 RocketMQ 运行环境建议至少 12G 内存。本文采用最新稳定版 5.3.4(4.x 系列已停止维护)。
安装 RocketMQ
将下载的二进制包上传至 /app/rocketmq 目录并解压:
mkdir -p rocketmq && cd rocketmq/
unzip rocketmq-all-5.3.4-bin-release.zip
mv rocketmq-all-5.3.4-bin-release rocketmq
配置与启动
修改启动脚本
编辑 runserver.sh 和 runbroker.sh,根据实际机器内存调整 JVM 参数,并修正 JDK 路径:
vi /app/rocketmq/rocketmq/bin/runserver.sh
# 修改 JAVA_HOME 为实际路径
which java
同理修改 runbroker.sh,确保 JAVA_HOME 指向正确位置。
Broker 配置
创建 broker.conf 配置文件:
vi /app/rocketmq/rocketmq/conf/broker.conf
namesrvAddr = localhost:9876
brokerIP1 = localhost
启动服务
创建日志目录并启动 Namesrv 与 Broker:
mkdir -p /data/logs/rocketmq
nohup sh /app/rocketmq/rocketmq/bin/mqnamesrv > /data/logs/rocketmq/nameserver.log &
nohup sh /app/rocketmq/rocketmq/bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true > /data/logs/rocketmq/broker.log &
验证进程状态:
jps
关闭服务可使用对应 shutdown 命令:
/app/rocketmq/rocketmq/bin/mqshutdown namesrv
/app/rocketmq/rocketmq/bin/mqshutdown broker
开机自启配置
使用 systemd 管理服务,避免手动启动失效。创建 rocketmqnamesrv.service 和 rocketmqbroker.service:
[Unit]
Description=rocketmq-nameserver
=network.target
=simple
=root
=/app/rocketmq/rocketmq/bin/mqnamesrv
=-failure
=
=multi-user.target


