From d180d516cd802f313f5908268b143910b3a98bfd Mon Sep 17 00:00:00 2001 From: rtgs Date: Thu, 16 Jul 2026 17:33:27 +0900 Subject: [PATCH] =?UTF-8?q?feat(3c):=203=EC=84=BC=ED=84=B0=20A-A-A=20?= =?UTF-8?q?=EA=B8=B0=EB=8F=99=20=EC=8A=A4=ED=81=AC=EB=A6=BD=ED=8A=B8=20+?= =?UTF-8?q?=20=EC=9D=B8=ED=94=84=EB=9D=BC=20=EB=A9=B1=EB=93=B1=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - run-3centers.cmd: 공유 인프라 + DC1(3c,순번기) + DC2/DC3 일괄 기동 오케스트레이터 - run-dc2/dc3: CHANEL_URL(자기 센터 Chanel 8191/8291) + RTGS_CONTROL_ENABLED=false - start-infra-native: Kafka 9092 LISTENING이면 재기동 skip(중복 창 방지, 멱등) - run-dt.cmd: 단말(DT) dev 서버 기동 - 전제: PostgreSQL max_connections>=300(19서비스 커넥션) Co-Authored-By: Claude Opus 4.8 --- infra/start-infra-native.cmd | 10 ++++++++-- run-3centers.cmd | 35 +++++++++++++++++++++++++++++++++++ run-dc2.cmd | 3 +++ run-dc3.cmd | 3 +++ run-dt.cmd | 10 ++++++++++ 5 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 run-3centers.cmd create mode 100644 run-dt.cmd diff --git a/infra/start-infra-native.cmd b/infra/start-infra-native.cmd index 84e72f6..5b3c495 100644 --- a/infra/start-infra-native.cmd +++ b/infra/start-infra-native.cmd @@ -38,8 +38,14 @@ if not exist "%KDATA%\kraft-logs\meta.properties" ( for /f "delims=" %%i in ('%KAFKA%\bin\windows\kafka-storage.bat random-uuid') do set "CID=%%i" "%KAFKA%\bin\windows\kafka-storage.bat" format -t %CID% -c "%KDATA%\server.properties" ) -echo [infra] starting Kafka :9092 (new window; keep it open)... -start "RTGS Kafka :9092" cmd /k "%KAFKA%\bin\windows\kafka-server-start.bat %KDATA%\server.properties" +rem 멱등: 9092가 이미 LISTENING이면 재기동 안 함(중복 Kafka 창 방지 — run-3centers에서 두 번 호출돼도 안전). +netstat -ano | findstr ":9092" | findstr LISTENING >nul +if errorlevel 1 ( + echo [infra] starting Kafka :9092 (new window; keep it open)... + start "RTGS Kafka :9092" cmd /k "%KAFKA%\bin\windows\kafka-server-start.bat %KDATA%\server.properties" +) else ( + echo [infra] Kafka already running (:9092). +) echo. echo [infra] PostgreSQL :5433 (db rtgs), Kafka :9092 up. (MongoDB not used - docs in PostgreSQL) diff --git a/run-3centers.cmd b/run-3centers.cmd new file mode 100644 index 0000000..7fb0f6c --- /dev/null +++ b/run-3centers.cmd @@ -0,0 +1,35 @@ +@echo off +rem =================================================================== +rem RTGS 3센터(DC1/DC2/DC3) A-A-A 일괄 기동 — 멀티센터 기능 점검용. +rem 공유 인프라(PostgreSQL:5433 / Kafka:9092) + 단일 전역 순번기(DC1 :8090) +rem DC1 8090~8099 / DC2 819x / DC3 829x. DB: rtgs_dc1 / rtgs_dc2 / rtgs_dc3. +rem ※ 클린 스타트가 필요하면(센터간 완전 동일 보장): stop 후 kraft-logs 재포맷 + rtgs_dc1/2/3 drop&create. +rem ※ 전제: PostgreSQL max_connections >= 300 (19서비스 x HikariCP). 부족 시 pgsql-data\postgresql.conf 수정 후 재시작. +rem =================================================================== +call C:\ai-dev\scripts\env.cmd + +echo [3c] 1) 공유 인프라 기동(PostgreSQL/Kafka)... +call "%~dp0infra\start-infra-native.cmd" +echo [3c] Kafka 수용 대기... +timeout /t 12 /nobreak >nul + +echo [3c] 2) 센터별 DB 생성(rtgs_dc1/2/3)... +call "%~dp0infra\init-3centers-db.cmd" + +echo [3c] 3) DC1 기동(3센터 모드: 순번기 + 6서비스, db=rtgs_dc1, 정족수 2/3)... +set "CENTER_COUNT=3" +set "POSTGRES_DB=rtgs_dc1" +call "%~dp0run-dc1.cmd" + +echo [3c] DC1 안정화 대기... +timeout /t 15 /nobreak >nul + +echo [3c] 4) DC2 기동(819x, db=rtgs_dc2)... +call "%~dp0run-dc2.cmd" +echo [3c] 5) DC3 기동(829x, db=rtgs_dc3)... +call "%~dp0run-dc3.cmd" + +echo. +echo [3c] 3센터 기동 완료. +echo 콘솔(모니터링): run-frontend.cmd -^> http://localhost:5174 (상단에서 DC1/DC2/DC3 전환) +echo 단말(DT): run-dt.cmd -^> http://localhost:5180 (접속 센터 선택) diff --git a/run-dc2.cmd b/run-dc2.cmd index 6aa1d7b..184fe62 100644 --- a/run-dc2.cmd +++ b/run-dc2.cmd @@ -11,6 +11,9 @@ set "JAVA_HOME=%JDK21_HOME%" set "CENTER_ID=DC2" set "CENTER_COUNT=3" set "POSTGRES_DB=rtgs_dc2" +rem DC2 Gucci는 자기 센터 Chanel(8191)로 프록시(기본 8091=DC1 방지). 서비스제어는 DC1 포트 기준이라 비활성. +set "CHANEL_URL=http://localhost:8191" +set "RTGS_CONTROL_ENABLED=false" echo [run-dc2] starting DC2 ledger/edge services on JDK21 (db=%POSTGRES_DB%, ports 819x)... rem LouisVuitton 먼저(Flyway가 rtgs_dc2 스키마 생성) → 원장/엣지 diff --git a/run-dc3.cmd b/run-dc3.cmd index 70b7aee..ed73bbd 100644 --- a/run-dc3.cmd +++ b/run-dc3.cmd @@ -11,6 +11,9 @@ set "JAVA_HOME=%JDK21_HOME%" set "CENTER_ID=DC3" set "CENTER_COUNT=3" set "POSTGRES_DB=rtgs_dc3" +rem DC3 Gucci는 자기 센터 Chanel(8291)로 프록시(기본 8091=DC1 방지). 서비스제어는 DC1 포트 기준이라 비활성. +set "CHANEL_URL=http://localhost:8291" +set "RTGS_CONTROL_ENABLED=false" echo [run-dc3] starting DC3 ledger/edge services on JDK21 (db=%POSTGRES_DB%, ports 829x)... rem LouisVuitton 먼저(Flyway가 rtgs_dc3 스키마 생성) → 원장/엣지 diff --git a/run-dt.cmd b/run-dt.cmd new file mode 100644 index 0000000..65d97d0 --- /dev/null +++ b/run-dt.cmd @@ -0,0 +1,10 @@ +@echo off +rem RTGS 단말(DT, :5180). 접속 센터(DC1/DC2/DC3)를 골라 각 센터 Gucci 관문으로 이체/조회. +call C:\ai-dev\scripts\env.cmd +cd /d "%~dp0frontend" +if not exist node_modules ( + echo [run-dt] installing dependencies... + call npm install +) +echo [run-dt] npm run dev:dt (http://localhost:5180/dt.html) +call npm run dev:dt