Apache RocketMQ 作为分布式消息中间件核心功能是实现海量消息的高吞吐收发、存储与转发适配电商秒杀、日志收集、系统异步通信等场景是企业级开发、运维人员处理高并发消息的核心工具其高可用、低延迟的特性能有效保障消息流转的稳定性。无论是中小电商处理订单消息还是互联网公司做日志同步RocketMQ 都能精准承接业务需求成为后端架构中不可或缺的一环。使用 RocketMQ 过程中需注意其部署对服务器内存有基础要求且 4.x 版本已停止维护建议优先选择 5.x 主流版本启动时需严格遵循 NameServer 先启动、Broker 后启动的顺序否则易出现服务连接失败的问题日常运维中也要关注端口占用、JVM 参数配置等细节避免影响服务稳定性。但仅在内网部署 RocketMQ 存在明显局限性异地开发团队无法直接连接调试改一行代码需远程协助反复确认企业跨网对接外部系统如物流平台读取订单消息时无公网 IP 只能依赖专线或第三方中转不仅成本高还存在数据安全风险且内网使用场景下出差、居家办公时无法随时调试服务大幅降低工作效率。而将 RocketMQ 与 cpolar 内网穿透结合能精准解决上述痛点无需申请公网 IP一键映射 9876 关键端口到公网异地人员直接用 cpolar 公网地址即可调试跨网对接外部系统时无需专线零成本实现数据同步cpolar 支持固定 TCP 地址避免每次重启地址变动导致的配置修改同时加密传输保障内网安全让 RocketMQ 彻底摆脱局域网限制适配更多实际业务场景。黄金搭档的教程在下面简单、易懂照做即可本文详细介绍了在Linux系统中从零开始原生部署Apache RocketMQ的完整流程。通过下载官方二进制包、配置NameServer与Broker核心组件、调整JVM与存储参数读者可快速搭建起一个单机可用的RocketMQ消息中间件环境。文章还涵盖了服务启动顺序、关键日志查看、生产者/消费者简易测试验证以及常见问题排查如端口占用、内存不足等确保部署过程顺畅可靠。消息队列不再遥远——在Linux上RocketMQ一跑就通。1.前提条件首先需要安装jdkjava-version下载RocketMQ的源码包以及运行包RocketMQ建议的运行环境需要至少12G的内存。关于RocketMQ的版本 我们这里采用最新的5.3.4版本这里需要小伙伴注意一下4.x的系列版本已经停止了维护。这意味着目前已经不建议使用4.x的版本了。2.安装RocketMQ将下载后的文件上传到/app/rocketmqmkdir-procketmqcdrocketmq/解压该文件unziprocketmq-all-5.3.4-bin-release.zip修改rocketmq文件名mvrocketmq-all-5.3.4-bin-release/ rocketmq3.配置RocketMQ3.1修改runserver.sh和runbroker.sh启动脚本修改runserver.sh脚本vi/app/rocketmq/rocketmq/bin/runserver.sh将原来的参数就改为红框内参数如果你的机器内存够大这一步可以不配置jdk路径必须修改为自己的jdk路径whichjava修改runbroker.sh脚本vi/app/rocketmq/rocketmq/bin/runbroker.sh将原来的参数就改为红框内参数如果你的机器内存够大这一步可以不配置jdk路径必须修改为自己的jdk路径3.2新增broker.conf配置信息编辑broker.conf配置文件vi/app/rocketmq/rocketmq/conf/broker.conf namesrvAddrlocalhost:9876 brokerIP1localhost3.3启动关闭rocketmq创建日志目录mkdir-p/data/logs/rocketmq启动命令#启动namesrv服务nohupsh/app/rocketmq/rocketmq/bin/mqnamesrv/data/logs/rocketmq/nameserver.log#启动broker服务nohupsh/app/rocketmq/rocketmq/bin/mqbroker-nlocalhost:9876autoCreateTopicEnabletrue/data/logs/rocketmq/broker.log验证是否启动成功jps关闭命令:#关闭namesrv服务/app/rocketmq/rocketmq/bin/mqshutdown namesrv#关闭broker服务/app/rocketmq/rocketmq/bin/mqshutdown broker4.配置开机自启动编写namesrv服务#创建配置文件vi/etc/systemd/system/rocketmqnamesrv.service#添加如下内容[Unit]Descriptionrocketmq - nameserverDocumentationrocketmq_nameserverAfternetwork.target[Service]TypesampleUserrootExecStart/app/rocketmq/rocketmq/bin/mqnamesrvExecReload/bin/kill-sHUP$MAINPIDExecStop/bin/kill-sQUIT$MAINPIDRestart0LimitNOFILE65535[Install]WantedBymulti-user.target编写broker服务#创建配置文件vi/etc/systemd/system/rocketmqbroker.service#添加如下内容[Unit]Descriptionrocketmq - brokerDocumentationrocketmq_brokerAfternetwork.target[Service]TypesampleUserrootExecStart/app/rocketmq/rocketmq/bin/mqbroker-nlocalhost:9876 /app/rocketmq/rocketmq/conf/broker.confExecReload/bin/kill-sHUP$MAINPIDExecStop/bin/kill-sQUIT$MAINPIDRestart0LimitNOFILE65535[Install]WantedBymulti-user.target此时rocketmq是关闭状态使用systemctl 方式启动测试:#依次执行启动namesrvsystemctl daemon-reload systemctlenablerocketmqnamesrv.service systemctl start rocketmqnamesrv.service systemctl status rocketmqnamesrv.service#依次执行启动brokersystemctl daemon-reload systemctlenablerocketmqbroker.service systemctl start rocketmqbroker.service systemctl status rocketmqbroker.service你已在内网Linux服务器上部署了Apache RocketMQ执行mqnamesrv和mqbroker成功启动了消息服务。但默认情况下这些服务仅监听本地或局域网外网客户端无法连接——即使你只是想从公司网络外发送一条测试消息也会因网络隔离而失败。此时无需申请公网IP或配置复杂端口映射只需借助cpolar内网穿透工具将RocketMQ的关键端口安全暴露到公网。一旦隧道建立任何外网设备都能像在内网一样直接连接并使用你刚刚启动的RocketMQ服务。5.安装cpolar内网穿透工具cpolar 可以将你本地电脑中的服务如 SSH、Web、数据库映射到公网。即使你在家里或外出时也可以通过公网地址连接回本地运行的开发环境。使用一键脚本安装命令sudocurlhttps://get.cpolar.sh|sh安装完成后执行下方命令查看cpolar服务状态如图所示即为正常启动sudosystemctl status cpolarCpolar安装和成功启动服务后在浏览器上输入虚拟机主机IP加9200端口即:【ip:9200】访问Cpolar管理界面使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可打开浏览器访问本地9200端口使用cpolar账户密码登录即可,登录后即可对隧道进行管理。6.配置公网地址通过配置你可以在本地 WSL 或 Linux 系统上运行 SSH 服务并通过 Cpolar 将其映射到公网从而实现从任意设备远程连接开发环境的目的。隧道名称可自定义本例使用了:rocketmq注意不要与已有的隧道名称重复协议tcp本地地址9876端口类型随机临时TCP端口地区China Top创建成功后打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址接下来就可以在其他电脑或者移动端设备异地上使用任意一个地址在终端中访问即可。tcp 表示使用的协议类型2.tcp.cpolar.top是 Cpolar 提供的域名11242是随机分配的公网端口号现在我们用另一台虚拟机启动一下我们的rocketmqnohupsh/app/rocketmq/rocketmq/bin/mqbroker-n2.tcp.cpolar.top:11242autoCreateTopicEnabletrue/data/logs/rocketmq/broker.log如图可见 启动成功7.保留固定TCP公网地址使用cpolar为其配置TCP地址该地址为固定地址不会随机变化。选择区域和描述有一个下拉菜单当前选择的是“China Top”。右侧输入框用于填写描述信息。保留按钮在右侧有一个橙色的“保留”按钮点击该按钮可以保留所选的TCP地址。列表中显示了一条已保留的TCP地址记录。登录cpolar web UI管理界面点击左侧仪表盘的隧道管理——隧道列表找到所要配置的隧道rocketmq点击右侧的编辑。修改隧道信息将保留成功的TCP端口配置到隧道中。端口类型选择固定TCP端口预留的TCP地址填写保留成功的TCP地址点击更新。创建完成后打开在线隧道列表此时可以看到随机的公网地址已经发生变化地址名称也变成了保留和固定的TCP地址。这样我们的地址就永远不会发生变化啦总结Apache RocketMQ 结合 cpolar 内网穿透既保留了消息中间件的高性能优势又突破了内网部署的场景限制。无论是异地开发调试还是企业跨网对接服务都能以低成本、简单操作实现全网访问让 RocketMQ 的实用价值得到充分发挥。
Apache RocketMQ+cpolar 让消息服务全网可达
Apache RocketMQ 作为分布式消息中间件核心功能是实现海量消息的高吞吐收发、存储与转发适配电商秒杀、日志收集、系统异步通信等场景是企业级开发、运维人员处理高并发消息的核心工具其高可用、低延迟的特性能有效保障消息流转的稳定性。无论是中小电商处理订单消息还是互联网公司做日志同步RocketMQ 都能精准承接业务需求成为后端架构中不可或缺的一环。使用 RocketMQ 过程中需注意其部署对服务器内存有基础要求且 4.x 版本已停止维护建议优先选择 5.x 主流版本启动时需严格遵循 NameServer 先启动、Broker 后启动的顺序否则易出现服务连接失败的问题日常运维中也要关注端口占用、JVM 参数配置等细节避免影响服务稳定性。但仅在内网部署 RocketMQ 存在明显局限性异地开发团队无法直接连接调试改一行代码需远程协助反复确认企业跨网对接外部系统如物流平台读取订单消息时无公网 IP 只能依赖专线或第三方中转不仅成本高还存在数据安全风险且内网使用场景下出差、居家办公时无法随时调试服务大幅降低工作效率。而将 RocketMQ 与 cpolar 内网穿透结合能精准解决上述痛点无需申请公网 IP一键映射 9876 关键端口到公网异地人员直接用 cpolar 公网地址即可调试跨网对接外部系统时无需专线零成本实现数据同步cpolar 支持固定 TCP 地址避免每次重启地址变动导致的配置修改同时加密传输保障内网安全让 RocketMQ 彻底摆脱局域网限制适配更多实际业务场景。黄金搭档的教程在下面简单、易懂照做即可本文详细介绍了在Linux系统中从零开始原生部署Apache RocketMQ的完整流程。通过下载官方二进制包、配置NameServer与Broker核心组件、调整JVM与存储参数读者可快速搭建起一个单机可用的RocketMQ消息中间件环境。文章还涵盖了服务启动顺序、关键日志查看、生产者/消费者简易测试验证以及常见问题排查如端口占用、内存不足等确保部署过程顺畅可靠。消息队列不再遥远——在Linux上RocketMQ一跑就通。1.前提条件首先需要安装jdkjava-version下载RocketMQ的源码包以及运行包RocketMQ建议的运行环境需要至少12G的内存。关于RocketMQ的版本 我们这里采用最新的5.3.4版本这里需要小伙伴注意一下4.x的系列版本已经停止了维护。这意味着目前已经不建议使用4.x的版本了。2.安装RocketMQ将下载后的文件上传到/app/rocketmqmkdir-procketmqcdrocketmq/解压该文件unziprocketmq-all-5.3.4-bin-release.zip修改rocketmq文件名mvrocketmq-all-5.3.4-bin-release/ rocketmq3.配置RocketMQ3.1修改runserver.sh和runbroker.sh启动脚本修改runserver.sh脚本vi/app/rocketmq/rocketmq/bin/runserver.sh将原来的参数就改为红框内参数如果你的机器内存够大这一步可以不配置jdk路径必须修改为自己的jdk路径whichjava修改runbroker.sh脚本vi/app/rocketmq/rocketmq/bin/runbroker.sh将原来的参数就改为红框内参数如果你的机器内存够大这一步可以不配置jdk路径必须修改为自己的jdk路径3.2新增broker.conf配置信息编辑broker.conf配置文件vi/app/rocketmq/rocketmq/conf/broker.conf namesrvAddrlocalhost:9876 brokerIP1localhost3.3启动关闭rocketmq创建日志目录mkdir-p/data/logs/rocketmq启动命令#启动namesrv服务nohupsh/app/rocketmq/rocketmq/bin/mqnamesrv/data/logs/rocketmq/nameserver.log#启动broker服务nohupsh/app/rocketmq/rocketmq/bin/mqbroker-nlocalhost:9876autoCreateTopicEnabletrue/data/logs/rocketmq/broker.log验证是否启动成功jps关闭命令:#关闭namesrv服务/app/rocketmq/rocketmq/bin/mqshutdown namesrv#关闭broker服务/app/rocketmq/rocketmq/bin/mqshutdown broker4.配置开机自启动编写namesrv服务#创建配置文件vi/etc/systemd/system/rocketmqnamesrv.service#添加如下内容[Unit]Descriptionrocketmq - nameserverDocumentationrocketmq_nameserverAfternetwork.target[Service]TypesampleUserrootExecStart/app/rocketmq/rocketmq/bin/mqnamesrvExecReload/bin/kill-sHUP$MAINPIDExecStop/bin/kill-sQUIT$MAINPIDRestart0LimitNOFILE65535[Install]WantedBymulti-user.target编写broker服务#创建配置文件vi/etc/systemd/system/rocketmqbroker.service#添加如下内容[Unit]Descriptionrocketmq - brokerDocumentationrocketmq_brokerAfternetwork.target[Service]TypesampleUserrootExecStart/app/rocketmq/rocketmq/bin/mqbroker-nlocalhost:9876 /app/rocketmq/rocketmq/conf/broker.confExecReload/bin/kill-sHUP$MAINPIDExecStop/bin/kill-sQUIT$MAINPIDRestart0LimitNOFILE65535[Install]WantedBymulti-user.target此时rocketmq是关闭状态使用systemctl 方式启动测试:#依次执行启动namesrvsystemctl daemon-reload systemctlenablerocketmqnamesrv.service systemctl start rocketmqnamesrv.service systemctl status rocketmqnamesrv.service#依次执行启动brokersystemctl daemon-reload systemctlenablerocketmqbroker.service systemctl start rocketmqbroker.service systemctl status rocketmqbroker.service你已在内网Linux服务器上部署了Apache RocketMQ执行mqnamesrv和mqbroker成功启动了消息服务。但默认情况下这些服务仅监听本地或局域网外网客户端无法连接——即使你只是想从公司网络外发送一条测试消息也会因网络隔离而失败。此时无需申请公网IP或配置复杂端口映射只需借助cpolar内网穿透工具将RocketMQ的关键端口安全暴露到公网。一旦隧道建立任何外网设备都能像在内网一样直接连接并使用你刚刚启动的RocketMQ服务。5.安装cpolar内网穿透工具cpolar 可以将你本地电脑中的服务如 SSH、Web、数据库映射到公网。即使你在家里或外出时也可以通过公网地址连接回本地运行的开发环境。使用一键脚本安装命令sudocurlhttps://get.cpolar.sh|sh安装完成后执行下方命令查看cpolar服务状态如图所示即为正常启动sudosystemctl status cpolarCpolar安装和成功启动服务后在浏览器上输入虚拟机主机IP加9200端口即:【ip:9200】访问Cpolar管理界面使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可打开浏览器访问本地9200端口使用cpolar账户密码登录即可,登录后即可对隧道进行管理。6.配置公网地址通过配置你可以在本地 WSL 或 Linux 系统上运行 SSH 服务并通过 Cpolar 将其映射到公网从而实现从任意设备远程连接开发环境的目的。隧道名称可自定义本例使用了:rocketmq注意不要与已有的隧道名称重复协议tcp本地地址9876端口类型随机临时TCP端口地区China Top创建成功后打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址接下来就可以在其他电脑或者移动端设备异地上使用任意一个地址在终端中访问即可。tcp 表示使用的协议类型2.tcp.cpolar.top是 Cpolar 提供的域名11242是随机分配的公网端口号现在我们用另一台虚拟机启动一下我们的rocketmqnohupsh/app/rocketmq/rocketmq/bin/mqbroker-n2.tcp.cpolar.top:11242autoCreateTopicEnabletrue/data/logs/rocketmq/broker.log如图可见 启动成功7.保留固定TCP公网地址使用cpolar为其配置TCP地址该地址为固定地址不会随机变化。选择区域和描述有一个下拉菜单当前选择的是“China Top”。右侧输入框用于填写描述信息。保留按钮在右侧有一个橙色的“保留”按钮点击该按钮可以保留所选的TCP地址。列表中显示了一条已保留的TCP地址记录。登录cpolar web UI管理界面点击左侧仪表盘的隧道管理——隧道列表找到所要配置的隧道rocketmq点击右侧的编辑。修改隧道信息将保留成功的TCP端口配置到隧道中。端口类型选择固定TCP端口预留的TCP地址填写保留成功的TCP地址点击更新。创建完成后打开在线隧道列表此时可以看到随机的公网地址已经发生变化地址名称也变成了保留和固定的TCP地址。这样我们的地址就永远不会发生变化啦总结Apache RocketMQ 结合 cpolar 内网穿透既保留了消息中间件的高性能优势又突破了内网部署的场景限制。无论是异地开发调试还是企业跨网对接服务都能以低成本、简单操作实现全网访问让 RocketMQ 的实用价值得到充分发挥。