Linux 部署 RocketMQ 并实现公网访问实战
在 Linux 服务器上部署 RocketMQ 时,内网测试往往顺利,但一旦涉及外网访问,网络隔离就成了主要障碍。申请公网 IP 或配置复杂端口映射费时费力。本文分享一套从基础部署到内网穿透的完整流程,帮助快速将 RocketMQ 服务暴露至公网。
1. 前提条件
JDK 环境:确保已安装 JDK 并配置环境变量。
java -version
资源要求:RocketMQ 建议运行环境至少 12GB 内存。
版本选择:推荐使用最新稳定版 5.3.4(4.x 系列已停止维护)。
2. 安装 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
3. 配置 RocketMQ
3.1 修改启动脚本
编辑 runserver.sh 和 runbroker.sh,根据实际机器内存调整 JVM 参数,并修正 JDK 路径。
vi /app/rocketmq/rocketmq/bin/runserver.sh
# 修改 JAVA_HOME 为实际路径
which java
同理修改 runbroker.sh,确保 Broker 进程能正确找到 Java 环境。
3.2 新增 Broker 配置
创建 broker.conf 配置文件,指定 NameServer 地址和本机 IP。
vi /app/rocketmq/rocketmq/conf/broker.conf
内容如下:
namesrvAddr = localhost:9876
brokerIP1 = localhost
3.3 启动与验证
创建日志目录并启动服务。
mkdir -p /data/logs/rocketmq
# 启动 NameServer
nohup sh /app/rocketmq/rocketmq/bin/mqnamesrv > /data/logs/rocketmq/nameserver.log &
# 启动 Broker
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


