# pg-status - PostgreSQL 호스트 상태 파악용 경량 마이크로서비스

> Clean Markdown view of GeekNews topic #26209. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=26209](https://news.hada.io/topic?id=26209)
- GeekNews Markdown: [https://news.hada.io/topic/26209.md](https://news.hada.io/topic/26209.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2026-01-29T09:31:01+09:00
- Updated: 2026-01-29T09:31:01+09:00
- Original source: [github.com/krylosov-aa](https://github.com/krylosov-aa/pg-status)
- Points: 8
- Comments: 0

## Summary

**pg-status**는 PostgreSQL 클러스터의 **마스터·리플리카 상태를 실시간 감시**하는 **경량 사이드카형 마이크로서비스**입니다. 모든 상태 정보를 메모리에서 직접 응답해 요청 지연을 최소화하며, **초당 약 9000건의 요청을 처리**할 만큼 효율적으로 동작합니다. 락프리 구조로 최신 데이터를 빠르게 제공하면서도, 환경 변수로 폴링 주기나 지연 한도를 세밀하게 조정할 수 있습니다.

## Topic Body

- **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**, **복구**, **동기화 상태 변화**를 실시간 표시  
- **마스터-리플리카 전환 시나리오**를 프록시 기반으로 시뮬레이션 가능

## Comments



_No public comments on this page._
