您好,登录后才能下订单哦!
# RocketMQ部署启动指南
## 目录
1. [RocketMQ概述](#rocketmq概述)
2. [环境准备](#环境准备)
3. [单机模式部署](#单机模式部署)
- [3.1 下载安装包](#31-下载安装包)
- [3.2 目录结构解析](#32-目录结构解析)
- [3.3 配置修改](#33-配置修改)
- [3.4 启动NameServer](#34-启动nameserver)
- [3.5 启动Broker](#35-启动broker)
4. [集群模式部署](#集群模式部署)
- [4.1 多Master模式](#41-多master模式)
- [4.2 多Master多Slave模式](#42-多master多slave模式)
5. [控制台部署](#控制台部署)
6. [生产环境调优建议](#生产环境调优建议)
7. [常见问题排查](#常见问题排查)
8. [附录](#附录)
---
## RocketMQ概述
Apache RocketMQ是一款开源的分布式消息中间件,具有以下核心特性:
- 低延迟:在高压下可实现毫秒级消息投递
- 高吞吐:单机支持10万级TPS
- 高可用:支持多副本机制和故障自动转移
- 分布式:支持水平扩展和亿级消息堆积能力
- 功能丰富:支持顺序消息、事务消息、定时消息等高级特性
典型应用场景包括:
- 应用解耦
- 异步通信
- 流量削峰
- 日志收集
- 消息分发
## 环境准备
### 硬件要求
| 角色 | 最低配置 | 推荐配置 |
|------------|-------------------------|-------------------------|
| NameServer | 2核CPU/4GB内存/50GB存储 | 4核CPU/8GB内存/100GB存储|
| Broker | 4核CPU/8GB内存/500GB存储| 8核CPU/16GB内存/1TB存储 |
### 软件要求
- 操作系统:Linux/Unix(CentOS 7+或Ubuntu 16.04+)
- JDK:1.8+(推荐OpenJDK 11)
- Maven:3.2+(仅源码编译需要)
- 磁盘:建议SSD,EXT4/XFS文件系统
### 网络要求
- 确保服务器间网络互通
- 开放以下默认端口:
- NameServer:9876
- Broker:10909(VIP端口),10911(主端口),10912(从端口)
## 单机模式部署
### 3.1 下载安装包
```bash
# 下载最新二进制包(以4.9.4为例)
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-all-4.9.4-bin-release
bin/ # 启动脚本
conf/ # 配置文件
lib/ # 依赖库
logs/ # 日志目录
store/ # 消息存储目录(自动创建)
编辑conf/broker.conf
:
# Broker标识(需唯一)
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
# 存储配置
storePathRootDir=/data/rocketmq/store
storePathCommitLog=/data/rocketmq/store/commitlog
# NameServer地址
namesrvAddr=127.0.0.1:9876
# 内存配置(根据机器配置调整)
sendMessageThreadPoolNums=16
pullMessageThreadPoolNums=32
# 启动NameServer(前台运行)
nohup sh bin/mqnamesrv &
# 验证启动
tail -f ~/logs/rocketmqlogs/namesrv.log
# 看到"The Name Server boot success"表示成功
# 指定配置文件启动
nohup sh bin/mqbroker -c conf/broker.conf &
# 验证启动
tail -f ~/logs/rocketmqlogs/broker.log
# 看到"The broker[broker-a, 192.168.1.100:10911] boot success"表示成功
# 测试消息发送
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
架构特点: - 所有节点都是Master - 配置简单,性能最高 - 单点故障会导致部分消息不可用
部署步骤(以2节点为例):
1. 修改每台机器的broker.conf
:
# 节点1配置
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
# 节点2配置
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=0
启动所有NameServer(建议至少2个)
在各节点启动Broker: “`bash
nohup sh bin/mqbroker -c conf/broker.conf -n “ns1:9876;ns2:9876” &
# 节点2 nohup sh bin/mqbroker -c conf/broker.conf -n “ns1:9876;ns2:9876” &
### 4.2 多Master多Slave模式
架构特点:
- 每个Master配置1个Slave
- 支持同步/异步复制
- 自动故障转移,可用性高
部署示例(2M-2S):
1. Master配置:
```properties
# master-a配置
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
# master-b配置
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
Slave配置: “`properties
brokerRole=SLAVE brokerName=broker-a brokerId=1
# slave-b配置 brokerRole=SLAVE brokerName=broker-b brokerId=1
3. 启动顺序:
```bash
# 先启动NameServer
# 再启动所有Master
# 最后启动Slave
RocketMQ官方提供可视化控制台:
# 下载控制台
git clone https://github.com/apache/rocketmq-dashboard.git
cd rocketmq-dashboard
# 修改配置
vim src/main/resources/application.yml
# 配置namesrvAddr和端口
# 打包运行
mvn clean package -Dmaven.test.skip=true
java -jar target/rocketmq-dashboard-1.0.0.jar
访问http://ip:8080
即可查看:
- 集群状态
- Topic管理
- 消息轨迹
- 消费者组信息
# NameServer示例(bin/runserver.sh)
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g"
JAVA_OPT="${JAVA_OPT} -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
# Broker示例(bin/runbroker.sh)
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m"
# 内核参数
echo 'vm.max_map_count=655360' >> /etc/sysctl.conf
echo 'fs.file-max=655350' >> /etc/sysctl.conf
sysctl -p
# 文件描述符
ulimit -n 655350
mount -o remount,noatime /data
端口冲突:
netstat -tunlp | grep 9876
kill -9 <PID>
磁盘空间不足:
df -h
# 清理日志或扩容存储
JDK版本不兼容:
java -version
# 确保使用JDK 1.8+
消息堆积:
consumer.setConsumeThreadMin(20)
消息重复:
# 查看Broker状态
sh bin/mqadmin clusterList -n 127.0.0.1:9876
# 创建Topic
sh bin/mqadmin updateTopic -n 127.0.0.1:9876 -b 127.0.0.1:10911 -t TestTopic
# 查看消费进度
sh bin/mqadmin consumerProgress -n 127.0.0.1:9876 -g ConsumerGroup
注:本文基于RocketMQ 4.9.4版本编写,不同版本可能存在配置差异,请以官方文档为准。 “`
该指南包含约4300字,采用标准的Markdown格式编写,包含: 1. 完整的部署流程(单机/集群) 2. 配置优化建议 3. 问题排查方法 4. 可视化控制台部署 5. 生产环境调优方案
可根据实际环境调整配置参数和部署架构。建议部署前仔细阅读官方Release Notes获取版本特定说明。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。