← AlertHub

05 / 07

설계 포인트

Fail-safe 멀티채널, ServiceLoader 확장 구조, 실시간+배치 혼합, 설정 기반 아키텍처

Fail-safeServiceLoaderExtensibility
개요 & 아키텍처모니터링 & 트리거알림 채널 구현YAML 기반 설정 관리설계 포인트문제 해결감사 로그 분석

Design Points

주요 설계 포인트

AlertHub의 핵심 설계 원칙은 장애 대응의 신뢰성, 운영 유연성, 확장 용이성이다.

01

멀티채널 Fail-safe 알림 설계

단일 채널에 의존하면 해당 채널 장애 시 알림 자체가 실패한다. 전화 + SMS + Slack + Email을 동시에 발송하여 어느 한 채널이 실패해도 나머지 채널로 알림이 전달되는 구조를 설계했다.

Fail-safe Structure

AlertHub 병렬 발송

전화

성공

SMS

실패

Slack

성공

Email

성공

SMS 실패에도 전화/Slack/Email로 알림 전달 -- 장애 인지 보장

02

설정 기반 아키텍처

YAML 기반으로 서비스, 알림, 스케줄을 분리하여 운영자가 코드 수정 없이 제어할 수 있다.

Service 설정

  • - 모니터링 대상 URL
  • - 파일 경로
  • - 점검 주기

Alert 설정

  • - 알림 채널 선택
  • - 수신자 목록
  • - 알림 조건

Schedule 설정

  • - Cron 표현식
  • - 실행 시간대
  • - 반복 주기

모든 설정은 YAML 파일에서 관리 -- 배포 없이 즉시 반영

03

ServiceLoader 확장 구조

ServiceLoader + ServiceRegistry 패턴과 Reflection 기반 서비스 생성을 적용하여, 새로운 모니터를 추가할 때 기존 코드 변경 없이 확장할 수 있다.

Extension Architecture

ServiceRegistry

Reflection 기반 서비스 인스턴스 생성

HTTP Monitor

Folder Monitor

Batch Runner

새 모니터 (확장)

YAML에 서비스 정의 추가만으로 새 모니터 등록 가능

04

실시간 + 배치 혼합 구조

다양한 장애 패턴에 대응하기 위해 실시간 이벤트 감지와 주기적 배치 점검을 혼합 운영한다.

실시간 (Event-driven)

FileEventRunner

파일 시스템 변경 이벤트 즉시 감지

Webhook 수신

외부 시스템 이벤트 수신

배치 (Scheduled)

Quartz Scheduler

Cron 기반 주기적 점검

일일 리포트

매일 상태 요약 발송

YAML 기반 설정 관리문제 해결