windows 环境安装
1.下载rocketMQ.zip
官网下载: https://rocketmq.apache.org/dowloading/releases/
我这里用的是4.9.7

2.解压

3.配置环境变量
在任务栏搜索框里面搜素环境变量



变量名:ROCKETMQ_HOME
变量值:D:\java\RocketMQ\rocketmq-all-4.9.7-bin-release (这里对应自己的解压目录)
4.启动
进入 D:\java\RocketMQ\rocketmq-all-4.9.7-bin-release\bin 下

打开cmd

分别启动两个
mqnamesrv.cmd启动方式: mqnamesrv.cmd -n 127.0.0.1:9876
mqbroker.cmd 启动方式: mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
Linux 环境安装
前提:RocketMQ 依赖 JDK 8 或 JDK 11(推荐 JDK 8,兼容性最佳),需先安装并配置环境变量。
一. 下载二进制包
推荐使用最新稳定版(避免快照版),可通过官网或镜像站下载。以 4.9.7 版本为例:
# 创建安装目录
mkdir -p /usr/local/rocketmq
cd /usr/local/rocketmq
# 下载二进制包
wget https://archive.apache.org/dist/rocketmq/4.9.7/rocketmq-all-4.9.7-bin-release.zip
# 若未安装 unzip,先执行:yum install -y unzip
unzip rocketmq-all-4.9.7-bin-release.zip
# 重命名目录(简化路径)
mv rocketmq-all-4.9.7-bin-release/* .
rm -rf rocketmq-all-4.9.7-bin-release.zip rocketmq-all-4.9.7-bin-release
二.核心组件配置
RocketMQ 核心组件为 NameServer(路由中心)和 Broker(消息存储节点),需分别配置并启动。
1. NameServer 配置
NameServer 无需复杂配置,默认端口 9876,可直接启动。若需修改端口,启动时指定即可:
# 后续启动时可通过 -p 指定端口(默认 9876)
# nohup sh bin/mqnamesrv -p 9877 &
2. Broker 配置(单节点模式)
Broker 需通过配置文件指定 NameServer 地址、存储路径等关键参数,推荐基于默认模板修改:
编辑配置文件
# 复制默认配置模板(单 Master 模式)
cp conf/broker.conf conf/my_broker.conf
# 编辑自定义配置文件
vim conf/my_broker.conf
关键配置参数(添加或修改以下内容)
# NameServer 地址(若为远程服务器,替换为实际 IP)
namesrvAddr=127.0.0.1:9876
# Broker 对外暴露的 IP(** 必须配置,否则客户端无法连接 **)
brokerIP1=192.168.1.100 # 替换为服务器实际 IP
# 消息存储路径(建议放在大磁盘分区)
storePathRootDir=/usr/local/rocketmq/store
storePathCommitLog=/usr/local/rocketmq/store/commitlog
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
storePathIndex=/usr/local/rocketmq/store/index
storeCheckpoint=/usr/local/rocketmq/store/checkpoint
abortFile=/usr/local/rocketmq/store/abort
# Broker 角色(单节点用 ASYNC_MASTER)
brokerRole=ASYNC_MASTER
# 刷盘策略(异步刷盘性能高,同步刷盘可靠性高)
flushDiskType=ASYNC_FLUSH
创建存储目录
mkdir -p /usr/local/rocketmq/store/{commitlog,consumequeue,index}
三、启动与停止服务
1. 启动 NameServer
# 后台启动,日志输出到 namesrv.log
nohup sh bin/mqnamesrv > /usr/local/rocketmq/logs/namesrv.log 2>&1 &
# 验证启动状态
# 方式 1:查看进程
ps -ef | grep namesrv
# 预期输出:... org.apache.rocketmq.namesrv.NamesrvStartup
# 方式 2:查看日志
tail -f /usr/local/rocketmq/logs/namesrv.log
# 出现 "The Name Server boot success. serializeType=JSON" 表示启动成功
2. 启动 Broker
# 后台启动,指定自定义配置文件,日志输出到 broker.log
nohup sh bin/mqbroker -c conf/my_broker.conf > /usr/local/rocketmq/logs/broker.log 2>&1 &
# 验证启动状态
ps -ef | grep broker
# 预期输出:... org.apache.rocketmq.broker.BrokerStartup -c conf/my_broker.conf
# 查看日志确认注册成功
tail -f /usr/local/rocketmq/logs/broker.log
# 出现 "register broker to name server 127.0.0.1:9876 success" 表示注册成功
3. 停止服务
# 先停止 Broker
sh bin/mqshutdown broker
# 再停止 NameServer
sh bin/mqshutdown namesrv
消息发送和接收演示
案例: 模拟一种场景: 下单成功之后,向下单用户发送消息(短信/邮件等等)
订单服务:
1.导入对应依赖
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.5.1</version>
</dependency>
2.添加配置
rocketmq:
name-server: 127.0.0.1:9876 #rocketMQ服务的地址
producer:
group: order # 生产者组
3.编写测试代码
@Autowired
private RocketMQTemplate rocketTemplate;
rocketTemplate.convertAndSend("order-topic(发送的topic)", "发送的消息");
用户服务
1.导入对应依赖
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.5.1</version>
</dependency>
2.添加配置
rocketmq:
name-server: 127.0.0.1:9876
producer:
group: user # 消费者组
3.编写消息接收服务
//接收服务
@Slf4j
@Service
@RocketMQMessageListener(consumerGroup = "user", topic = "order-topic")
public class NotifyService implements RocketMQListener<Student> {
@Override
public void onMessage(Student notify) {
log.info("收到一个订单信息{},接下来发送短信", JSON.toJSONString(notify));
}
}
RocketMQ安装配置指南



8743

被折叠的 条评论
为什么被折叠?



