2025-08-17 02:18:33 +08:00

112 lines
3.2 KiB
Batchfile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@echo off
setlocal enabledelayedexpansion
chcp 65001 >nul
title RocketMQ 5.x Quick Start (with Proxy)
:: 1. 检查 ROCKETMQ_HOME 是否存在
if "%ROCKETMQ_HOME%" == "" (
:: 如果未设置,尝试使用上级的上级目录作为默认值
set "ROCKETMQ_HOME=%~dp0..\"
echo [INFO] ROCKETMQ_HOME is not set, using default: !ROCKETMQ_HOME!
)
:: 2. 检查 mqnamesrv.cmd 是否存在
if not exist "%ROCKETMQ_HOME%\bin\mqnamesrv.cmd" (
echo [ERROR] mqnamesrv.cmd not found in %ROCKETMQ_HOME%\bin
echo Please set correct ROCKETMQ_HOME environment variable
pause
exit /b 1
)
:: 3. 检查 JAVA_HOME
if "%JAVA_HOME%" == "" (
echo [WARN] JAVA_HOME is not set, trying to find Java automatically...
goto :FOUNING_JAVA
) else (
if not exist "%JAVA_HOME%\bin\java.exe" (
echo [WARN] %JAVA_HOME%\bin\java.exe is not exist, trying to find Java automatically...
goto :FOUNING_JAVA
)
goto :START_SERVER
)
:FOUNING_JAVA
:: 尝试在常见位置查找Java
echo FOUNDING ===== START
for %%d in (
"%ProgramFiles%\Java\"
"%ProgramFiles(x86)%\Java\"
"%~dp0..\jdk"
"%~dp0..\java"
"%~dp0..\..\jdk"
"%~dp0..\..\java"
) do (
echo [INFO] == %%~d
if exist "%%~d\bin\java.exe" (
set "JAVA_HOME=%%~d"
echo [INFO] Found Java at: !JAVA_HOME!
goto :START_SERVER
)
)
echo FOUNDING ===== END
goto :NOT_FOUND_JAVA
:NOT_FOUND
echo [ERROR] java.exe not found in %JAVA_HOME%\bin
echo Please set correct JAVA_HOME environment variable
pause
exit /b 1
:NOT_FOUND_JAVA
echo [ERROR] Java not found automatically and JAVA_HOME is not set
echo Please install Java or set JAVA_HOME environment variable
pause
exit /b 1
:START_SERVER
echo [INFO] Using JAVA_HOME: %JAVA_HOME%
if exist "%ROCKETMQ_HOME%\sbin\store\" (
set "INITIAL=TRUE"
)
:: 4. 启动 NameServer
start "RocketMQ NameServer" cmd /k "%ROCKETMQ_HOME%\bin\mqnamesrv.cmd"
:: 等待 NameServer 启动
timeout /t 5 /nobreak >nul
:: 5. 启动 Broker如果需要直接访问 Broker可单独启动
:: start "RocketMQ Broker" cmd /k "%ROCKETMQ_HOME%\bin\mqbroker.cmd" -n localhost:9876
:: start "RocketMQ Broker" cmd /k "%ROCKETMQ_HOME%\bin\mqbroker.cmd" -n localhost:9876 autoCreateTopicEnable=true
:: start "RocketMQ Broker" cmd /k "%ROCKETMQ_HOME%\bin\mqbroker.cmd" -n localhost:9876 -c ../conf/broker.conf
start "RocketMQ Broker" cmd /k "%ROCKETMQ_HOME%\bin\mqbroker.cmd" -c ../conf/broker-localhost.conf
:: 等待 Broker 启动
timeout /t 10 /nobreak >nul
:: 6. 启动 ProxyRocketMQ 5.x 推荐方式)
start "RocketMQ Proxy" cmd /k "%ROCKETMQ_HOME%\bin\mqproxy.cmd" -n localhost:9876
:: 等待 Proxy 启动
timeout /t 2 /nobreak >nul
:: 7. 启动 Dashboard可选
if exist "%ROCKETMQ_HOME%\bin\rocketmq-dashboard.jar" (
start "RocketMQ Dashboard" cmd /k "%JAVA_HOME%\bin\java -jar -Dserver.port=8088 %ROCKETMQ_HOME%\bin\rocketmq-dashboard.jar"
)
echo RocketMQ 5.x 服务已启动:
echo - NameServer (端口: 9876)
echo - Broker (端口: 10911)
echo - Proxy (端口: 8081)
echo - Dashboard (端口: 8080)
:: if "%INITIAL%"="" (
:: timeout /t 2 /nobreak >nul
:: echo RocketMQ 数据初始化...
:: start "Rocket Create Topic" "initial-topic.bat"
:: start "Rocket Create Consumer" "initial-consumer.bat"
:: )
pause
endlocal