HA 구성
HA 구성은 장애 발생 시에도 메시지 처리를 지속하기 위한 이중화 운영 방식입니다.
HA 모드 비교
NONE
단일 노드
단일 서버로 운영. 별도 HA 처리 없이 모든 프로세스가 동작합니다.
ACTIVE-STANDBY
주-대기 이중화
Primary가 모든 프로세스를 실행하고, Standby가 주기적으로 확인하다 장애 시 자동 승격합니다.
ACTIVE-ACTIVE
동시 처리 이중화
두 노드가 동시에 처리하며 agent_id로 레코드를 분리합니다. 통합인증키 2개가 필요합니다.
구성 방식
- Active-Standby.
- Multi Active(분산 처리).
- 공용 DB Lock 또는 리더 선출 기반 제어.
필수 고려사항
- 중복 발송 방지를 위한 lock/key 정책.
- 장애 전환 시 처리 중 레코드의 상태 일관성.
- 재기동 시 미완료 건 복구 순서.
운영 체크리스트
- 장애 전환 테스트를 정기 수행합니다.
- DB 및 네트워크 단절 시나리오를 포함해 검증합니다.
- 전환 시점의 지연/누락/중복 지표를 모니터링합니다.
HA 모드
msgConfig.yml의 ha.mode 값으로 HA 동작 방식을 설정합니다.
NONE (단일 노드)
YAML
ha:
mode: none
단일 서버로 운영합니다. 별도 HA 처리 없이 모든 프로세스가 동작합니다.
ACTIVE-STANDBY
YAML
ha:
mode: active-standby
status: primary # Primary: primary / Standby: secondary
primary:
host: 192.168.1.10
port: 5000
retryInterval: 10000
initialDelay: 5000
- Primary: 정상적으로 모든 프로세스 실행
- Standby: Primary 서버를 주기적으로 확인, 장애 시 자동 승격
ACTIVE-ACTIVE
YAML
ha:
mode: active-active
id: E1 # 노드 1: E1 / 노드 2: E2
두 노드가 동시에 처리하며, agent_id 필드로 레코드를 분리합니다.
MySQL 8.0+ / MariaDB 10.6+ / Oracle 11.2+ 환경에서는 FOR UPDATE SKIP LOCKED로 노드 간 충돌 없이 처리합니다. Active-Active 구성 시 통합인증키(2개)를 별도 발급받으세요.