T
TechInsights
목록으로
BackEnd•2025. 11. 13.

Pushsphere: LINE 메신저의 빠르고 신뢰할 수 있는 대량 푸시 알림 비법

라인
라인 Engineering Team
Pushsphere: LINE 메신저의 빠르고 신뢰할 수 있는 대량 푸시 알림 비법

핵심요약

원문 보기

LINE 메신저의 Pushsphere는 불안정한 APNs/FCM 및 할당량 제한과 같은 복잡한 문제를 해결하기 위해 고도화된 재시도 로직과 로드 밸런싱을 적용하여 안정적이고 빠른 대량 푸시 알림 전송을 구현했습니다. 이를 통해 푸시 알림 도달률을 극대화하고 서버 인프라의 신뢰성을 확보했습니다.

Pushsphere: LINE의 고성능 푸시 알림 게이트웨이 시스템

LINE 푸시 알림 시스템의 기술적 도전 과제

  • LINE 메신저의 푸시 알림은 단순한 마케팅 알림을 넘어, 생명과 직결될 수 있는 중요 메시지 및 음성/화상 통화의 핵심 기능을 담당합니다.
  • 안정성과 속도: 재난 알림 등 중요한 메시지는 반드시 신뢰성 있고 신속하게 전달되어야 합니다.
  • 극적인 트래픽 증가: 새해 자정, 지진 발생과 같은 특정 상황에서 메시지 발송량이 평소의 수십 배까지 급증합니다.
  • 외부 서비스의 불안정성: APNs(Apple Push Notification service)와 FCM(Firebase Cloud Message)은 일부 인스턴스에서 응답 지연이나 타임아웃이 빈번하게 발생합니다.
  • 복잡한 재시도 로직 관리: 실패한 요청에 대한 재시도 횟수, 지연 시간, 인스턴스 전환 전략, 문제 인스턴스 재평가 등 섬세한 설정이 필요합니다.
  • 할당량 제한(Quota Limit): 푸시 알림 서비스의 할당량 초과 시 모든 전송이 차단될 수 있어, 무분별한 재시도는 오히려 도달률을 저해합니다.

Pushsphere 클라이언트의 핵심 기술 및 구현

  • Pushsphere 클라이언트는 앞선 문제들을 해결하기 위해 Armeria 프레임워크 기반으로 고성능 Netty 네트워킹 스택을 활용하며 복잡한 로직들을 통합 구현했습니다.
  • 통합 인터페이스: FCM과 APNs 등 다양한 푸시 플랫폼에 대한 단일 엔트리 포인트를 제공하여 사용 편의성을 높이고, 데이터 유효성 검증 및 형식 변환을 수행합니다.
  • 재시도 인식 로드 밸런서: 라운드 로빈 전략을 기반으로 하지만, 재시도 시 이전에 실패했던 엔드포인트를 제외하여 특정 서버 장애에 탄력적으로 대응하고 도달률을 향상시킵니다.
  • 할당량 인식 자동 재시도 로직: 현재 사용 가능한 **할당량(Quota)**을 확인한 후 재시도를 수행하여 과도한 재시도로 인한 할당량 초과 및 429 Too Many Requests 오류를 방지하고, 제한된 자원 내에서 신규 요청 처리를 우선합니다.
  • 엔드포인트 매니저와 서킷 브레이커 연동: 각 APNs/FCM 엔드포인트에 서킷 브레이커를 할당하여 실패 임계치 초과 시 해당 엔드포인트를 풀에서 즉시 제거하고, 주기적인 DNS 쿼리로 최신 IP를 반영하여 건강한 엔드포인트만 사용합니다.

Pushsphere 서버 인프라 개선 및 아키텍처

  • 초기 Pushsphere 서버 인프라의 L4 로드 밸런서 단일 장애점 및 불균등한 트래픽 분배 문제를 해결하기 위해 새로운 아키텍처를 도입했습니다.
  • CDCP(Central Dogma Control Plane) 도입: xDS 프로토콜 기반의 서비스 메시 솔루션인 CDCP를 활용하여 쿠버네티스 환경에서 클라이언트 측 로드 밸런싱을 구현, 중앙 집중식 로드 밸런서를 제거했습니다.
  • 프록시 없는 서비스 메시(Proxyless Service Mesh): LINE 메시징 서버들이 CDCP에서 엔드포인트 정보를 직접 가져와 Pushsphere 노드로 트래픽을 전송함으로써, 중간 프록시 없이 균등한 트래픽 분배와 단일 장애점 제거를 달성했습니다.
  • 멀티 데이터 센터 및 존 인식 라우팅: CDCP를 통해 여러 데이터 센터에 걸쳐 존 인식 라우팅을 지원하여 네트워크 지연을 최소화하고 재난 상황에서도 안정적인 푸시 알림 전송을 보장합니다.
#BackEnd#Infra#Architecture
라인
라인

라인 Engineering Team

기술 인사이트를 전달하는 공식 채널

You might also like

View all
Part2: 삼성계정 서비스의 Agentic AIOps, 운영환경에서 Multi-Agent 시스템으로 RCA 자동화 하기

Part2: 삼성계정 서비스의 Agentic AIOps, 운영환경에서 Multi-Agent 시스템으로 RCA 자동화 하기

야놀자의 Strands SDK와 Bedrock AgentCore를 활용한 AIOps Agent 구축 사례

야놀자의 Strands SDK와 Bedrock AgentCore를 활용한 AIOps Agent 구축 사례