125 lines
3.3 KiB
Batchfile
125 lines
3.3 KiB
Batchfile
@echo off
|
||
setlocal enabledelayedexpansion
|
||
chcp 65001 >nul
|
||
title RocketMQ 5.x Quick Start (with Proxy)
|
||
|
||
if "%ROCKETMQ_HOME%" == "" (
|
||
set "ROCKETMQ_HOME=%~dp0.."
|
||
echo [INFO] ROCKETMQ_HOME is not set, using default: !ROCKETMQ_HOME!
|
||
)
|
||
|
||
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
|
||
)
|
||
|
||
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
|
||
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"
|
||
)
|
||
|
||
start "RocketMQ NameServer" cmd /k "%ROCKETMQ_HOME%\bin\mqnamesrv.cmd"
|
||
|
||
timeout /t 2 /nobreak >nul
|
||
|
||
start "RocketMQ Broker" cmd /k "%ROCKETMQ_HOME%\bin\mqbroker.cmd" -c ../conf/broker-localhost.conf
|
||
|
||
timeout /t 2 /nobreak >nul
|
||
|
||
set MAX_RETRY=5
|
||
set RETRY_COUNT=0
|
||
|
||
:START_PROXY
|
||
set /a RETRY_COUNT+=1
|
||
start "RocketMQ Proxy" cmd /k "%ROCKETMQ_HOME%\bin\mqproxy.cmd" -n localhost:9876
|
||
|
||
echo [INFO] Checking if the proxy has started successfully ..
|
||
timeout /t 5 /nobreak >nul
|
||
|
||
:CHECK_PORT
|
||
timeout /t 2 /nobreak >nul
|
||
netstat -ano | findstr ":8081" | findstr "LISTENING" >nul
|
||
if %ERRORLEVEL% equ 0 (
|
||
echo [INFO] Proxy started successfully, port 8081 is listening.
|
||
goto :START_DASHBOARD
|
||
) else (
|
||
echo [WARN] Proxy Startup failed, port 8081 is not listening [attempted !RETRY_COUNT!/!MAX_RETRY!]
|
||
if !RETRY_COUNT! lss !MAX_RETRY! (
|
||
timeout /t 2 /nobreak >nul
|
||
taskkill /FI "WINDOWTITLE eq RocketMQ Proxy" /F >nul 2>&1
|
||
goto :START_PROXY
|
||
) else (
|
||
echo [ERROR] Proxy Startup failed, maximum retry attempts have been reached !MAX_RETRY!
|
||
goto :START_DASHBOARD
|
||
)
|
||
)
|
||
|
||
:START_DASHBOARD
|
||
:: 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"
|
||
)
|
||
|
||
:: =============================================
|
||
:: Status Display
|
||
:: =============================================
|
||
echo.
|
||
echo ========================================
|
||
echo RocketMQ Services Successfully Started
|
||
echo ========================================
|
||
echo - NameServer (Port: 9876)
|
||
echo - Broker (Port: 10911)
|
||
echo - Proxy (Port: 8081)
|
||
echo - Dashboard (Port: 8080)
|
||
echo ========================================
|
||
echo.
|
||
|
||
pause
|
||
endlocal |