家用住宅主机Linux RocketMQ高吞吐消息队列部署

写在前面

RocketMQ 是阿里巴巴开源的一款分布式消息中间件,以高吞吐、低延迟、可靠投递著称。
很多开发者会在个人云服务器或家用 Linux 主机上搭建它做学习或轻量业务使用。
但家用网络环境(如动态公网IP、防火墙限制、内存偏小)常让新手踩坑。
本文就从零开始,以一台普通家用 Linux 主机为例,带你完整部署并验证 RocketMQ 的消息收发。

部署前要准备哪些东西?

  1. 一台运行 Linux 的主机:建议 Ubuntu 20.04+ 或 CentOS 7+,内存至少 2GB(RocketMQ 4.x 官方推荐 4GB,但家用测试 2GB 可以跑,需调小 JVM)。
  2. Java 8 或 11 运行环境:RocketMQ 依赖 JDK。使用命令检查是否已安装:
   java -version

如果未安装,以 Ubuntu 为例:

   sudo apt update
   sudo apt install openjdk-11-jdk -y
  1. 下载 RocketMQ 二进制包:去 Apache 官网或 GitHub Releases 获取最新稳定版(示例版本号以 4.9.x5.x 为准,本文以 4.9.6 为例)。直接下载:
   wget https://archive.apache.org/dist/rocketmq/4.9.6/rocketmq-all-4.9.6-bin-release.zip
  1. 安装 unzip(如果未安装)
   sudo apt install unzip -y

安装和启动 NameServer + Broker

1. 解压并配置环境变量

unzip rocketmq-all-4.9.6-bin-release.zip -d /opt
sudo mv /opt/rocketmq-all-4.9.6-bin-release /opt/rocketmq

编辑 /etc/profile,在末尾添加:

export ROCKETMQ_HOME=/opt/rocketmq
export PATH=$PATH:$ROCKETMQ_HOME/bin

执行 source /etc/profile 使生效。

2. 调整 JVM 参数(家用主机内存不足时的关键步骤)

打开 $ROCKETMQ_HOME/bin/runserver.sh,找到 JAVA_OPT 相关行,修改 -Xms4g -Xmx4g-Xms256m -Xmx512m

同样修改 $ROCKETMQ_HOME/bin/runbroker.sh,把 -Xms8g -Xmx8g 改为 -Xms256m -Xmx512m

3. 启动 NameServer

nohup sh mqnamesrv &

查看日志确认启动成功:

tail -f ~/logs/rocketmqlogs/namesrv.log

出现 The Name Server boot success. 说明正常。

4. 启动 Broker

编辑 $ROCKETMQ_HOME/conf/broker.conf,在末尾添加以下配置,以适应家用网络环境:

# 自动创建主题
autoCreateTopicEnable=true
# Broker 监听端口
listenPort=10911
# 若家用主机有动态公网IP,指定内网IP,这里用localhost
brokerIP1=127.0.0.1

然后启动 Broker:

nohup sh mqbroker -n localhost:9876 -c $ROCKETMQ_HOME/conf/broker.conf &

查看日志:

tail -f ~/logs/rocketmqlogs/broker.log

出现 The broker[broker-a, 127.0.0.1:10911] boot success. 即为启动成功。

验证消息收发,体验高吞吐

RocketMQ 自带生产者、消费者客户端工具,可以快速测试。

发送消息

进入 $ROCKETMQ_HOME/bin 目录,执行:

export NAMESRV_ADDR=localhost:9876
sh tools.sh org.apache.rocketmq.example.quickstart.Producer

正常会看到一堆“SendResult [sendStatus=SEND_OK, msgId=...]”,说明消息发送成功。

消费消息

保持 NameServer 和 Broker 运行,新开一个终端:

export NAMESRV_ADDR=localhost:9876
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer

可以看到消费端收到刚刚发送的消息,输出类似“ConsumeMessageThread_1 Receive New Messages: [MessageExt...]”。

至此,你已经在自家 Linux 主机上跑通了 RocketMQ 消息队列。

避坑与高频问题解答

Q1:启动时提示“Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory...”

原因:内存不足。
说明 JVM 分配的 Xms 太大,而物理内存不够。
按照本文第二步调整 runserver.sh 和 runbroker.sh 中的 -Xms 和 -Xmx 即可。

Q2:启动 Broker 后客户端连接不上

检查项

  • 防火墙是否放行了 9876(NameServer)和 10911(Broker)端口:
  sudo ufw allow 9876/tcp
  sudo ufw allow 10911/tcp
  • Broker 配置文件中的 brokerIP1 是否设为正确的 IP(家用主机建议用 127.0.0.1 先做本地测试)。
  • 若想对外暴露,需设置公网 IP 并在路由器做端口转发,本文不展开,家用测试建议全本地。

Q3:日志报错“No route info of this topic”

原因:Broker 尚未创建主题(若未启用自动创建)。
确认 autoCreateTopicEnable=true 已添加,并重启 Broker。

Q4:家用主机重启后 RocketMQ 自动启动?

建议用 systemd 服务管理,省去手动启动。
可编写独立的服务文件,这里不赘述,可查找本站“Linux 设置 RocketMQ 开机自启”的文章。

最后

如果你正在处理家用住宅主机上部署 Linux RocketMQ 高吞吐消息队列,建议先按本文步骤完整执行,再根据自己的环境(如公网需求、更大内存)做微调;
遇到异常时优先回看避坑和高频问题部分。
从零到能收发消息,通常只需要十几分钟,这个轻量级的消息中间件就能在你的本地网络里跑起来,为后续学习分布式消息或对接应用打下扎实基础。

分享到:
上一篇
外贸站宝塔面板网站404页面自定义提升收录
下一篇
跨境独立站宝塔面板服务器带宽限速防止爬虫占用
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意