RocketMQ一键启动_window
Window一键启动RocketMQ
1. 设置高级环境变量
- 打开系统属性窗口
- 按
Win + R
输入sysdm.cpl
回车。 - 或右键「此电脑」→「属性」→「高级系统设置」。
- 按
- 进入环境变量设置
- 在「高级」选项卡点击「环境变量」。
- 新建系统变量
- 在「系统变量」区域点击「新建」。
- 变量名:
ROCKETMQ_HOME
。 - 变量值:
D:\Software\rocketmq-all-5.3.1-bin-release\bin
。 - 点击「确定」保存。
注:也可以使用命令行【以管理员方式启动】,一键注册为系统变量。
setx ROCKETMQ_HOME "D:\Software\rocketmq-all-5.3.1-bin-release" /M
2. 一键启动
- 一键启动RocketMQ脚本如下:
@echo off
:: 设置全局变量(方便后续维护)
set "ROCKETMQ_BIN=D:\software\rocketmq-all-5.3.3-bin-release\bin"
set "NAMESRV_ADDR=127.0.0.1:9876":: 检查路径是否存在(防错处理)
if not exist "%ROCKETMQ_BIN%\mqnamesrv.cmd" (echo 错误:未找到 RocketMQ 的 bin 目录,请检查路径!pauseexit /b 1
):: 启动NameServer(新窗口,保持打开)
start "RocketMQ NameServer" /D "%ROCKETMQ_BIN%" cmd /k mqnamesrv.cmd
echo NameServer 已启动,等待10秒初始化...
timeout /t 10 /nobreak > nul:: 启动Broker(新窗口,保持打开)
start "RocketMQ Broker" /D "%ROCKETMQ_BIN%" cmd /k mqbroker.cmd -n %NAMESRV_ADDR% autoCreateTopicEnable=true
echo Broker 已启动,连接到 NameServer: %NAMESRV_ADDR%:: 提示用户操作完成
echo -------------------------------
echo RocketMQ 启动完成!
echo 1. NameServer 运行在第一个窗口
echo 2. Broker 运行在第二个窗口
echo -------------------------------
pause
效果图如下:
- 验证RocketMQ是否启动成功。
netstat -ano | findstr :9876
3. 注意事项
3.1 Please set the ROCKETMQ_HOME variable in your environment!
设置了ROCKET_HOME系统变量未生效,需重启系统。
3.2 修改存储路径
在 RocketMQ 中,store
目录是 Broker 的 核心存储路径,存放所有持久化数据,包括:
broker.pid
- Broker 进程的 PID 文件,用于判断 Broker 是否正在运行。
commitlog
- 存储所有消息的物理文件(核心数据)。
consumequeue
- 消息消费队列的索引文件。
index
- 消息的哈希索引文件(用于快速查找)。
checkpoint
- 存储 Broker 的检查点信息(如刷盘进度)。
config
- 运行时的配置缓存。
如何修改默认存储路径
RocketMQ 的默认存储路径由以下参数控制,优先级从高到低:
broker.conf
配置文件- 启动参数(JVM 参数)
方法1:通过 broker.conf
修改(推荐)
- 编辑
%ROCKETMQ_HOME%/conf/broker.conf
,添加以下配置:
# 设置全局存储根目录
storePathRootDir=/your/custom/path/store
# 可选:单独指定其他子目录
storePathCommitLog=/your/custom/path/store/commitlog
storePathConsumeQueue=/your/custom/path/store/consumequeue
- 启动 Broker 时指定配置文件:
mqbroker.cmd -n 127.0.0.1:9876 -c %ROCKETMQ_HOME%/conf/broker.conf
方法2:通过启动参数修改
在 mqbroker.cmd
中直接添加 JVM 参数:
Batcall "%ROCKETMQ_HOME%\bin\runbroker.cmd" ^-DstorePathRootDir="D:\rocketmq_data\store" ^ # 覆盖存储根目录-Duser.home="D:\rocketmq_data" ^ # 备用路径org.apache.rocketmq.broker.BrokerStartup %*
cketmq_data\store" ^ # 覆盖存储根目录-Duser.home="D:\rocketmq_data" ^ # 备用路径org.apache.rocketmq.broker.BrokerStartup %*