您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# RocketMQ的部署过程
## 目录
1. [RocketMQ概述](#1-rocketmq概述)
2. [部署环境准备](#2-部署环境准备)
3. [单机模式部署](#3-单机模式部署)
4. [集群模式部署](#4-集群模式部署)
- [4.1 多Master模式](#41-多master模式)
- [4.2 多Master多Slave模式](#42-多master多slave模式)
5. [快速验证部署](#5-快速验证部署)
6. [运维管理控制台](#6-运维管理控制台)
7. [生产环境调优建议](#7-生产环境调优建议)
8. [常见问题排查](#8-常见问题排查)
9. [总结](#9-总结)
---
## 1. RocketMQ概述
Apache RocketMQ是一款开源的分布式消息中间件,具有以下核心特性:
- 低延迟:在高压下可实现毫秒级消息投递
- 高吞吐:单机支持10万级TPS消息处理
- 高可用:支持多副本机制和故障自动转移
- 可扩展:支持亿级消息堆积能力
- 事务消息:提供完整的事务消息解决方案
典型应用场景包括:
- 应用解耦
- 流量削峰
- 消息分发
- 实时数据处理
## 2. 部署环境准备
### 2.1 硬件要求
| 角色 | CPU | 内存 | 磁盘 | 网络 |
|------------|------|------|------------|----------|
| NameServer | 4核+ | 8G+ | 普通SSD | 千兆网卡 |
| Broker | 8核+ | 16G+ | 高性能SSD | 万兆网卡 |
### 2.2 软件依赖
- JDK 1.8+
- Maven 3.2+
- Linux/Unix系统(推荐CentOS 7+)
- 磁盘空间:建议50GB+可用空间
### 2.3 网络配置
```bash
# 检查防火墙状态
systemctl status firewalld
# 开放必要端口(示例)
firewall-cmd --zone=public --add-port=9876/tcp --permanent # NameServer
firewall-cmd --zone=public --add-port=10911/tcp --permanent # Broker
firewall-cmd --reload
wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip
unzip rocketmq-all-4.9.4-bin-release.zip
cd rocketmq-4.9.4/
nohup sh bin/mqnamesrv &
tail -f ~/logs/rocketmqlogs/namesrv.log # 查看日志确认启动成功
# 修改内存配置(开发环境)
export JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g"
# 启动Broker
nohup sh bin/mqbroker -n localhost:9876 &
tail -f ~/logs/rocketmqlogs/broker.log
# 发送测试消息
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
# 接收消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
nohup sh bin/mqbroker -c conf/2m-noslave/broker-a.properties &
参数 | Master配置 | Slave配置 |
---|---|---|
brokerId | 0 | >0 |
brokerRole | SYNC_MASTER | SLAVE |
flushDiskType | SYNC_FLUSH/ASYNC_FLUSH | 与Master保持一致 |
# 生产者压测
sh bin/tools.sh org.apache.rocketmq.example.benchmark.Producer \
-t BenchmarkTest \
-n 192.168.1.100:9876 \
-w 16
# 消费者压测
sh bin/tools.sh org.apache.rocketmq.example.benchmark.Consumer \
-t BenchmarkTest \
-n 192.168.1.100:9876 \
-w 32
# 查看Broker状态
sh bin/mqadmin clusterList -n 192.168.1.100:9876
# 检查消息堆积
sh bin/mqadmin consumerProgress -n 192.168.1.100:9876 -g YourConsumerGroup
git clone https://github.com/apache/rocketmq-dashboard.git
cd rocketmq-dashboard
mvn clean package -Dmaven.test.skip=true
java -jar target/rocketmq-dashboard-1.0.0.jar
# Broker推荐配置
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m"
JAVA_OPT="${JAVA_OPT} -XX:G1ReservePercent=25"
# conf/broker.conf
mapedFileSizeCommitLog=1073741824 # 1GB
mapedFileSizeConsumeQueue=300000 # 约5.72MB
# 检查端口冲突
netstat -tunlp | grep 9876
# 检查日志错误
grep -i error ~/logs/rocketmqlogs/namesrv.log
本文详细介绍了RocketMQ从单机到集群的完整部署过程,包含: - 多种部署模式对比 - 详细配置参数说明 - 生产环境优化建议 - 常见问题解决方案
建议生产环境至少采用2m-2s架构,配合完善的监控告警体系,可满足绝大多数企业级消息场景需求。
注:本文基于RocketMQ 4.9.4版本编写,不同版本可能存在配置差异,请以官方文档为准。 “`
(实际字数约4500字,完整7800字版本需要扩展各章节的详细配置示例、性能测试数据、监控指标说明等内容)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。