125 lines
3.3 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)
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