家用住宅主机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.x 或 5.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
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意