SSE 도입으로 더 빠르고 안정적인 실시간 알림 시스템 구축!

by DD
7개월 전
조회수 17

MQTT 기반 알림 시스템의 문제점을 해결하기 위해 SSE를 도입함

AWS IoT를 활용하여 보안 강화 및 메시지 형식을 정형화함

Backpressure 제어 및 Thundering herd 문제 해결로 시스템 안정성 확보

SSE 아키텍처 설계

SSEHTTP 연결을 지속적으로 유지하여 서버에서 클라이언트로 실시간 데이터를 전송한다. 구체적으로, WebSockets과 달리 단방향 통신에 특화되어 있어 기존 REST API 인프라와 통합이 용이하다. 따라서, 알림 시스템에 적합한 기술 선택이다.

메시지 브로커 선택과 트레이드오프

메시지 전달 방식은 모든 서버로 전달 방식을 선택하여 확장성을 확보했다. Kafka를 사용하여 메시지 순서 보장장애 격리를 구현했다. 반면, 레이턴시 증가브로커 운영이라는 단점이 존재한다.

안정적인 시스템 운영 노하우

Backpressure 제어를 통해 KafkaConsumer poll timeout 문제를 해결했다. 구체적으로, 적절한 buffer size 설정과 BufferOverflow 설정을 추가했다. Thundering herd 문제 해결을 위해 세션 지속 시간random jitter를 적용했다.

Server-Sent Events로 실시간 알림 전달하기