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.ymlha.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개)를 별도 발급받으세요.