RocketMQ 安装配置全攻略:从环境准备到实战验证(windows/Linux)

RocketMQ安装配置指南

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));
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值