From edc2e7cd87ea8d800ef2c3a67ed588e15d8f5215 Mon Sep 17 00:00:00 2001 From: yuejiajun <1530620364@qq.com> Date: Fri, 15 Aug 2025 11:30:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E5=BF=BD=E7=95=A5=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=88=9D=E5=A7=8B=E5=8C=96=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base/Resources/rocketmq/sbin/.gitignore | 1 + .../rocketmq/sbin/initial-consumer.bat | 36 ++++++++++ .../Resources/rocketmq/sbin/initial-topic.bat | 37 ++++++++++ base/Resources/rocketmq/sbin/rocketmq.bat | 67 +++++++++++-------- 4 files changed, 112 insertions(+), 29 deletions(-) create mode 100644 base/Resources/rocketmq/sbin/.gitignore create mode 100644 base/Resources/rocketmq/sbin/initial-consumer.bat create mode 100644 base/Resources/rocketmq/sbin/initial-topic.bat diff --git a/base/Resources/rocketmq/sbin/.gitignore b/base/Resources/rocketmq/sbin/.gitignore new file mode 100644 index 0000000..9ae80d3 --- /dev/null +++ b/base/Resources/rocketmq/sbin/.gitignore @@ -0,0 +1 @@ +store/ \ No newline at end of file diff --git a/base/Resources/rocketmq/sbin/initial-consumer.bat b/base/Resources/rocketmq/sbin/initial-consumer.bat new file mode 100644 index 0000000..7b5fda1 --- /dev/null +++ b/base/Resources/rocketmq/sbin/initial-consumer.bat @@ -0,0 +1,36 @@ +@echo off +setlocal enabledelayedexpansion +chcp 65001 >nul +title RocketMQ Consumer Group Initialization + +:: BROKER_NAME +set "BROKER_NAME=broker-a" +:: 集群名称 +set "CLUSTER_NAME=DefaultCluster" + +echo. +echo [INFO] 正在创建消费者组 +for %%g in ( + "SIMULATION_FIFO_001" + "CID_standard_topic_sample" + "CID_ONSAPI_OWNER" + "SELF_TEST_C_GROUP" + "SIMULATION_FIFO_002" + "TOOLS_CONSUMER" + "CID_ONSAPI_PULL" + "CID_ONSAPI_PERMISSION" + "CID_RMQ_SYS_TRANS" + "FILTERSRV_CONSUMER" + "CID_ONS-HTTP-PROXY" +) do ( + echo [INFO] 创建消费者组: %%~g + curl -X POST ^ + http://localhost:8088/consumer/createOrUpdate.do ^ + -H "Content-Type: application/json" ^ + -d "{\"brokerNameList\":[\"%BROKER_NAME%\"],\"subscriptionGroupConfig\":{\"groupName\":\"%%~g\",\"consumeEnable\":true,\"consumeMessageOrderly\":false,\"consumeFromMinEnable\":true,\"consumeBroadcastEnable\":true,\"retryQueueNums\":1,\"retryMaxTimes\":16,\"brokerId\":0,\"whichBrokerWhenConsumeSlowly\":1},\"clusterNameList\":[\"%CLUSTER_NAME%\"]}" + echo. +) + +echo 所有消费者组创建完成! +pause +exit /b 0 \ No newline at end of file diff --git a/base/Resources/rocketmq/sbin/initial-topic.bat b/base/Resources/rocketmq/sbin/initial-topic.bat new file mode 100644 index 0000000..d8507ab --- /dev/null +++ b/base/Resources/rocketmq/sbin/initial-topic.bat @@ -0,0 +1,37 @@ +@echo off +setlocal enabledelayedexpansion +chcp 65001 >nul +title RocketMQ Topic Initialization + +:: BROKER_NAME +set "BROKER_NAME=broker-a" +:: 集群名称 +set "CLUSTER_NAME=DefaultCluster" + +echo. +echo [INFO] 正在创建普通主题 +for %%t in ( + "rt-efficiency-index" + "scenario-content-publish" + "scenario-content-subscribe" + "scenario-factor-publish" + "scenario-factor-subscribe" + "simulation-command" + "simulation-engine" + "simulation-running-control-percent" + "simulation-running-control-sse" + "simulation-task-feedback" + "simulation-task-publish" + "simulation-trainExRl" +) do ( + echo [INFO] 创建普通主题: %%~t + curl -X POST ^ + http://localhost:8088/topic/createOrUpdate.do ^ + -H "Content-Type: application/json" ^ + -d "{\"writeQueueNums\":8,\"readQueueNums\":8,\"perm\":6,\"order\":false,\"topicName\":\"%%~t\",\"brokerNameList\":[\"%BROKER_NAME%\"],\"messageType\":\"NORMAL\",\"clusterNameList\":[\"%CLUSTER_NAME%\"]}" + echo. +) + +echo 所有主题创建完成! +pause +exit /b 0 \ No newline at end of file diff --git a/base/Resources/rocketmq/sbin/rocketmq.bat b/base/Resources/rocketmq/sbin/rocketmq.bat index 54d968e..a84010a 100644 --- a/base/Resources/rocketmq/sbin/rocketmq.bat +++ b/base/Resources/rocketmq/sbin/rocketmq.bat @@ -5,49 +5,48 @@ 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! + :: 如果未设置,尝试使用上级的上级目录作为默认值 + 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 + 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 - + 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 + 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" + "%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 - ) + 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 @@ -67,6 +66,10 @@ 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" @@ -76,8 +79,8 @@ 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 +:: 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 @@ -90,7 +93,7 @@ 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" + start "RocketMQ Dashboard" cmd /k "%JAVA_HOME%\bin\java -jar -Dserver.port=8088 %ROCKETMQ_HOME%\bin\rocketmq-dashboard.jar" ) echo RocketMQ 5.x 服务已启动: @@ -99,5 +102,11 @@ 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 \ No newline at end of file