-
PostgreSQL 클러스터의 상태를 실시간으로 감지하기 위해 설계된 사이드카형 마이크로서비스
- 호스트의 생존 여부, 마스터/리플리카 구분, 리플리카 지연 시간을 즉시 확인 가능
-
경량·고성능 구조: 메모리 사용량 약 9MiB, 요청당 낮은 CPU 부하로 초당 최대 9000 요청 처리
- 모든 데이터는 메모리 기반 응답으로 제공되어 요청 지연 최소화
- 백그라운드에서 주기적으로 PostgreSQL 호스트 상태를 폴링하고, 결과를 HTTP API로 노출(Plain/JSON 응답)
- 주요 API 엔드포인트
-
/master: 현재 마스터 호스트 반환
-
/replica: 라운드로빈 알고리듬으로 선택된 리플리카 반환
-
/sync_by_time, /sync_by_bytes: 시간 또는 바이트 단위 동기화 상태 기준 리플리카 반환
-
/hosts: 모든 호스트의 상태 목록(JSON)
-
/status: 특정 호스트의 상세 상태 조회
-
환경 변수 기반 설정 : 연결 타임아웃, 허용 지연 한도, 폴링 주기 등 세밀한 제어 가능
- 단일 writer와 다수의 reader 구조로 된 락프리(lock-free) 설계로 빠른 읽기 응답과 최신 데이터 유지
- 일시적 데이터 불일치 가능성을 감수하고 응답 속도 최적화
- 서비스 시작·종료 및 상태 변경 이벤트를 stdout/stderr로 기록하며, failover, 복구, 동기화 상태 변화를 실시간 표시
-
마스터-리플리카 전환 시나리오를 프록시 기반으로 시뮬레이션 가능