
백엔드
Reliable SIP Registration Management Using Redis Keyspace Events
두줄요약
Redis 키스페이스 이벤트로 SIP 등록 갱신 타이머를 영속화해 서버 재시작에도 등록 누락을 줄였습니다. 대규모 환경에서는 보조 키, Goalkeeper, Redis 클러스터 확장과 hz 튜닝으로 안정성을 높였습니다.
문제 상황
- HTTP 기반 마이크로서비스와 IMS의 SIP 등록을 연결하는 서버에서 재시작·재배포 시 로컬 타이머 소실
- SIP 등록 갱신이 누락되면 대규모 사용자 환경에서 수동 복구가 비효율적
원인 분석
- 서버가 stateless 구조라 로컬 타이머와 구독 상태가 영속되지 않음
- Redis Pub/Sub의 fire-and-forget 특성상 재접속 구간 이벤트 유실 가능
- Redis 클러스터에서는 노드별 키 만료 이벤트를 따로 받아야 함
해결 방법
- Redis SETEX와 keyspace notifications로 등록 갱신 타이머를 영속화
- PSUBSCRIBE로 만료 이벤트를 구독하고, 서버 IP가 포함된 키 패턴으로 담당 서버만 처리
- 보조 키와 Goalkeeper 감시로 부팅 중 누락된 갱신을 보완
성능/운영 포인트
- Redis Cluster로 수평 확장과 장애 대응성 확보
- 대량 키 환경에서 만료 이벤트 지연을 고려해 buffer time과 delta 값을 조정
- Redis hz 설정 조정으로 key expiry notification 지연 완화
