RocketMQ 安装教程(本地环境 & 服务器环境)
RocketMQ 是阿里巴巴开源的一款高性能、高可靠的分布式消息中间件,适用于大规模分布式系统。本文将详细介绍 RocketMQ 在 本地环境 和 服务器环境 的安装步骤,并提供图文说明。
一、准备工作
1.1 系统要求
- 操作系统:Linux(推荐 CentOS/Ubuntu)或 Windows(本地开发)
- Java 环境:JDK 8+(RocketMQ 4.x 版本)
- 内存:至少 4GB(生产环境推荐 8GB+)
- 磁盘空间:至少 10GB(存储消息日志)
1.2 下载 RocketMQ
访问 RocketMQ 官方 GitHub,下载最新稳定版(如 4.9.4
):
- 二进制包:
rocketmq-all-4.9.4-bin-release.zip
(Windows/Linux 通用) - 源码包:
rocketmq-all-4.9.4-source-release.zip
(可选)
二、本地环境安装(Windows/macOS/Linux)
2.1 安装 JDK
确保已安装 JDK 8+,并配置 JAVA_HOME
环境变量。
2.2 解压 RocketMQ
将下载的 rocketmq-all-4.9.4-bin-release.zip
解压到任意目录,例如:
bash
unzip rocketmq-all-4.9.4-bin-release.zip -d /opt/rocketmq | |
cd /opt/rocketmq |
2.3 修改内存配置(可选)
RocketMQ 默认启动参数需要较大内存(如 -Xms4g -Xmx4g
),本地开发时可调整:
- 编辑
bin/runbroker.sh
和bin/runserver.sh
:bash
# 将以下参数改为更小的值(如 512m)
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"
2.4 启动 NameServer
NameServer 是 RocketMQ 的路由注册中心,类似 ZooKeeper。
bash
# 进入 bin 目录 | |
cd bin | |
# 启动 NameServer(后台运行) | |
nohup sh mqnamesrv & | |
# 查看日志 | |
tail -f ~/logs/rocketmqlogs/namesrv.log |
如果看到 The Name Server boot success
,说明启动成功。
2.5 启动 Broker
Broker 是消息存储和转发的核心组件。
bash
# 启动 Broker(后台运行) | |
nohup sh mqbroker -n localhost:9876 & | |
# 查看日志 | |
tail -f ~/logs/rocketmqlogs/broker.log |
如果看到 The broker[%s, 192.168.x.x:10911] boot success
,说明启动成功。
2.6 测试 RocketMQ
发送消息
bash
# 进入 bin 目录 | |
cd bin | |
# 发送测试消息 | |
sh tools.sh org.apache.rocketmq.example.quickstart.Producer |
接收消息
bash
# 接收测试消息 | |
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer |
如果看到消息内容,说明安装成功。
2.7 关闭 RocketMQ
bash
# 关闭 Broker | |
sh mqshutdown broker | |
# 关闭 NameServer | |
sh mqshutdown namesrv |
三、服务器环境安装(Linux)
3.1 安装 JDK
以 CentOS 为例:
bash
# 安装 OpenJDK 8 | |
yum install -y java-1.8.0-openjdk-devel | |
# 验证安装 | |
java -version |
3.2 上传 RocketMQ 包
将 rocketmq-all-4.9.4-bin-release.zip
上传到服务器(如 /opt
目录):
bash
# 使用 scp 或 sftp 上传 | |
scp rocketmq-all-4.9.4-bin-release.zip user@your-server:/opt | |
# 解压 | |
unzip rocketmq-all-4.9.4-bin-release.zip -d /opt/rocketmq | |
cd /opt/rocketmq |
3.3 配置环境变量
编辑 ~/.bashrc
或 /etc/profile
:
bash
export ROCKETMQ_HOME=/opt/rocketmq | |
export PATH=$PATH:$ROCKETMQ_HOME/bin |
生效配置:
bash
source ~/.bashrc |
3.4 修改内存配置
编辑 bin/runbroker.sh
和 bin/runserver.sh
,调整内存参数(生产环境建议保持默认):
bash
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g" |
3.5 创建日志目录
bash
mkdir -p /opt/rocketmq/logs | |
chown -R your-user:your-user /opt/rocketmq/logs |
3.6 启动 NameServer 和 Broker
以守护进程方式启动
bash
# 启动 NameServer | |
nohup sh bin/mqnamesrv > /opt/rocketmq/logs/namesrv.log 2>&1 & | |
# 启动 Broker | |
nohup sh bin/mqbroker -n localhost:9876 > /opt/rocketmq/logs/broker.log 2>&1 & |
检查进程
bash
ps -ef | grep rocketmq |
检查端口
bash
netstat -tulnp | grep 9876 # NameServer 默认端口 | |
netstat -tulnp | grep 10911 # Broker 默认端口 |
3.7 配置开机自启(可选)
编辑 /etc/rc.local
,添加以下内容:
bash
su - your-user -c "nohup sh /opt/rocketmq/bin/mqnamesrv > /opt/rocketmq/logs/namesrv.log 2>&1 &" | |
su - your-user -c "nohup sh /opt/rocketmq/bin/mqbroker -n localhost:9876 > /opt/rocketmq/logs/broker.log 2>&1 &" |
赋予执行权限:
bash
chmod +x /etc/rc.local |
3.8 测试 RocketMQ
与本地环境相同,通过 Producer
和 Consumer
测试消息发送和接收。
四、常见问题解决
4.1 端口冲突
- NameServer 默认端口:
9876
- Broker 默认端口:
10911
- 如果端口被占用,修改
conf/broker.conf
:properties
启动时指定配置文件:listenPort=10912 # 修改 Broker 端口
bash
nohup sh mqbroker -n localhost:9876 -c ../conf/broker.conf &
4.2 内存不足
- 本地开发时调整
runbroker.sh
和runserver.sh
的内存参数。 - 生产环境建议增加服务器内存。
4.3 日志文件权限问题
确保运行 RocketMQ 的用户对日志目录有读写权限:
bash
chown -R your-user:your-user /opt/rocketmq/logs |
4.4 防火墙阻止端口
- 临时关闭防火墙(测试环境):
bash
systemctl stop firewalld # CentOS 7
ufw disable # Ubuntu
- 生产环境建议配置防火墙规则,放行
9876
和10911
端口。
五、生产环境优化建议
- 集群部署:
- 部署多个 NameServer(无状态,可水平扩展)。
- 部署多个 Broker(主从模式或 Dledger 模式)。
- 持久化存储:
- 修改
storePathRootDir
和storePathCommitLog
到大容量磁盘。
- 修改
- 监控与告警:
- 使用 Prometheus + Grafana 监控 RocketMQ 指标。
- 配置告警规则(如磁盘空间不足、Broker 宕机)。
- 备份与恢复:
- 定期备份消息日志(
commitlog
、consumequeue
)。 - 测试恢复流程,确保数据安全。
- 定期备份消息日志(
六、总结
本地环境安装流程图
+-------------------+ +-------------------+ +-------------------+ | |
| 下载 RocketMQ | →解压→ | 修改内存配置 | →启动→ | NameServer | | |
| (rocketmq-all.zip)| | (runbroker.sh) | | (nohup mqnamesrv) | | |
+-------------------+ +-------------------+ +-------------------+ | |
↓ | |
+-------------------+ +-------------------+ +-------------------+ | |
| 启动 Broker | →测试→ | 发送/接收消息 | →关闭→ | 停止服务 | | |
| (nohup mqbroker) | | (Producer/Consumer)| | (mqshutdown) | | |
+-------------------+ +-------------------+ +-------------------+ |
服务器环境安装流程图
+-------------------+ +-------------------+ +-------------------+ | |
| 上传 RocketMQ | →解压→ | 配置环境变量 | →启动→ | NameServer | | |
| (rocketmq-all.zip)| | (~/.bashrc) | | (nohup mqnamesrv) | | |
+-------------------+ +-------------------+ +-------------------+ | |
↓ | |
+-------------------+ +-------------------+ +-------------------+ | |
| 启动 Broker | →配置→ | 开机自启 | →测试→ | 消息发送/接收 | | |
| (nohup mqbroker) | | (/etc/rc.local) | | (Producer/Consumer)| | |
+-------------------+ +-------------------+ +-------------------+ |
七、附录:RocketMQ 常用命令
命令 | 说明 |
---|---|
sh mqnamesrv | 启动 NameServer |
sh mqbroker -n localhost:9876 | 启动 Broker |
sh mqadmin updateTopic -n localhost:9876 -t TestTopic | 创建 Topic |
sh mqadmin clusterList -n localhost:9876 | 查看集群状态 |
sh mqshutdown namesrv | 关闭 NameServer |
sh mqshutdown broker | 关闭 Broker |
通过本文的详细步骤,你可以在本地或服务器上成功安装和运行 RocketMQ。如果在安装过程中遇到问题,可以参考 RocketMQ 官方文档 或在评论区留言,我会尽力帮助你解决!