2025-08-14 18:04:17 +08:00
|
|
|
@echo off
|
|
|
|
setlocal enabledelayedexpansion
|
2025-08-17 02:18:33 +08:00
|
|
|
chcp 65001 >nul
|
2025-08-19 16:38:40 +08:00
|
|
|
title RocketMQ Quick Start
|
|
|
|
|
|
|
|
set "SCRIPT_DIR=%~dp0"
|
|
|
|
cd /d "%SCRIPT_DIR%"
|
2025-08-14 18:04:17 +08:00
|
|
|
|
|
|
|
if "%ROCKETMQ_HOME%" == "" (
|
2025-08-19 16:38:40 +08:00
|
|
|
set "ROCKETMQ_HOME=%SCRIPT_DIR%.."
|
2025-08-15 11:30:18 +08:00
|
|
|
echo [INFO] ROCKETMQ_HOME is not set, using default: !ROCKETMQ_HOME!
|
2025-08-14 18:04:17 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
if "%JAVA_HOME%" == "" (
|
2025-08-15 11:30:18 +08:00
|
|
|
echo [WARN] JAVA_HOME is not set, trying to find Java automatically...
|
2025-08-19 16:38:40 +08:00
|
|
|
call :FIND_JAVA
|
|
|
|
if errorlevel 1 (
|
|
|
|
echo [ERROR] Java not found
|
|
|
|
exit /b 1
|
|
|
|
)
|
2025-08-14 18:04:17 +08:00
|
|
|
) else (
|
2025-08-15 11:30:18 +08:00
|
|
|
if not exist "%JAVA_HOME%\bin\java.exe" (
|
|
|
|
echo [WARN] %JAVA_HOME%\bin\java.exe is not exist, trying to find Java automatically...
|
2025-08-19 16:38:40 +08:00
|
|
|
call :FIND_JAVA
|
|
|
|
if errorlevel 1 (
|
|
|
|
echo [ERROR] Java not found
|
|
|
|
exit /b 1
|
|
|
|
)
|
2025-08-15 11:30:18 +08:00
|
|
|
)
|
2025-08-14 18:04:17 +08:00
|
|
|
)
|
2025-08-15 11:30:18 +08:00
|
|
|
|
2025-08-19 16:38:40 +08:00
|
|
|
echo [INFO] Starting NameServer...
|
|
|
|
start "RocketMQ NameServer" /B cmd /c ""%ROCKETMQ_HOME%\bin\mqnamesrv.cmd""
|
2025-08-14 18:04:17 +08:00
|
|
|
|
2025-08-19 16:38:40 +08:00
|
|
|
timeout /t 3 /nobreak >nul
|
2025-08-14 18:04:17 +08:00
|
|
|
|
2025-08-19 16:38:40 +08:00
|
|
|
echo [INFO] Starting Broker...
|
|
|
|
start "RocketMQ Broker" /B cmd /c ""%ROCKETMQ_HOME%\bin\mqbroker.cmd" -c ../conf/broker-localhost.conf"
|
2025-08-14 18:04:17 +08:00
|
|
|
|
2025-08-19 16:38:40 +08:00
|
|
|
timeout /t 5 /nobreak >nul
|
2025-08-14 18:04:17 +08:00
|
|
|
|
2025-08-19 16:11:50 +08:00
|
|
|
set MAX_RETRY=5
|
|
|
|
set RETRY_COUNT=0
|
|
|
|
|
|
|
|
:START_PROXY
|
|
|
|
set /a RETRY_COUNT+=1
|
2025-08-19 16:38:40 +08:00
|
|
|
echo [INFO] Starting Proxy (Attempt !RETRY_COUNT!/!MAX_RETRY!)...
|
|
|
|
start "RocketMQ Proxy" /B cmd /c ""%ROCKETMQ_HOME%\bin\mqproxy.cmd" -n localhost:9876"
|
|
|
|
|
|
|
|
echo [INFO] Checking proxy status...
|
|
|
|
set PORT_OPEN=0
|
|
|
|
for /l %%i in (1,1,10) do (
|
|
|
|
timeout /t 1 /nobreak >nul
|
|
|
|
netstat -ano | findstr ":8081" | findstr "LISTENING" >nul && set PORT_OPEN=1
|
|
|
|
if !PORT_OPEN! equ 1 goto :PROXY_SUCCESS
|
|
|
|
)
|
2025-08-19 16:11:50 +08:00
|
|
|
|
2025-08-19 16:38:40 +08:00
|
|
|
if !RETRY_COUNT! lss !MAX_RETRY! (
|
|
|
|
taskkill /f /im java.exe /fi "WINDOWTITLE eq RocketMQ Proxy" >nul 2>&1
|
|
|
|
goto :START_PROXY
|
2025-08-19 16:11:50 +08:00
|
|
|
) else (
|
2025-08-19 16:38:40 +08:00
|
|
|
echo [ERROR] Failed to start Proxy after !MAX_RETRY! attempts
|
|
|
|
goto :START_DASHBOARD
|
2025-08-19 16:11:50 +08:00
|
|
|
)
|
2025-08-14 18:04:17 +08:00
|
|
|
|
2025-08-19 16:38:40 +08:00
|
|
|
:PROXY_SUCCESS
|
|
|
|
echo [INFO] Proxy started successfully
|
|
|
|
|
2025-08-19 16:11:50 +08:00
|
|
|
:START_DASHBOARD
|
2025-08-14 18:04:17 +08:00
|
|
|
if exist "%ROCKETMQ_HOME%\bin\rocketmq-dashboard.jar" (
|
2025-08-19 16:38:40 +08:00
|
|
|
echo [INFO] Starting Dashboard...
|
|
|
|
start "RocketMQ Dashboard" /B cmd /c ""%JAVA_HOME%\bin\java" -jar -Dserver.port=8088 "%ROCKETMQ_HOME%\bin\rocketmq-dashboard.jar""
|
2025-08-14 18:04:17 +08:00
|
|
|
)
|
|
|
|
|
2025-08-19 16:11:50 +08:00
|
|
|
echo.
|
|
|
|
echo ========================================
|
2025-08-19 16:38:40 +08:00
|
|
|
echo RocketMQ Services Status
|
2025-08-19 16:11:50 +08:00
|
|
|
echo ========================================
|
|
|
|
echo - NameServer (Port: 9876)
|
|
|
|
echo - Broker (Port: 10911)
|
|
|
|
echo - Proxy (Port: 8081)
|
|
|
|
echo - Dashboard (Port: 8080)
|
|
|
|
echo ========================================
|
|
|
|
echo.
|
|
|
|
|
2025-08-19 16:38:40 +08:00
|
|
|
exit /b 0
|
|
|
|
|
|
|
|
:FIND_JAVA
|
|
|
|
for %%d in (
|
|
|
|
"%ProgramFiles%\Java\"
|
|
|
|
"%ProgramFiles(x86)%\Java\"
|
|
|
|
"%ROCKETMQ_HOME%\jdk"
|
|
|
|
"%ROCKETMQ_HOME%\java"
|
|
|
|
"%ROCKETMQ_HOME%\..\jdk"
|
|
|
|
"%ROCKETMQ_HOME%\..\java"
|
|
|
|
) do (
|
|
|
|
if exist "%%~d\bin\java.exe" (
|
|
|
|
set "JAVA_HOME=%%~d"
|
|
|
|
echo [INFO] Found Java at: !JAVA_HOME!
|
|
|
|
exit /b 0
|
|
|
|
)
|
|
|
|
)
|
|
|
|
exit /b 1
|