기술 블로그
B레벨 - 심화
LINE의 Kafka Streams를 활용한 내부 메시지 전달 파이프라인 구축
백엔드
메시징
인프라
KafkaKafka StreamsJavaDistributed Systems
배경
LINE 메신저는 수억 명의 사용자가 매일 수십억 건의 메시지를 주고받는 대규모 메시징 플랫폼이다. 내부 메시지 전달 시스템(IMF)을 고도화하여 실시간 처리 성능과 확장성을 개선할 필요가 있었다.
도전 과제
기존 메시지 전달 시스템은 토픽 필터링과 메시지 카테고리 분류가 비효율적이었고, 대규모 토픽에서 선택적 소비가 어려워 네트워크 트래픽 낭비가 발생했다. 백그라운드 태스크 처리를 위한 안정적인 큐 시스템도 필요했다.
해결 방안
Apache Kafka Streams를 도입하여 Loopback Replicator(토픽 필터링 및 카테고리별 분류)와 Decaton(백그라운드 태스크 프로세서)을 구축했다. Kafka Streams를 프레임워크가 아닌 라이브러리로 활용하여 기존 인프라와의 호환성을 극대화했다.
결과
선택적 토픽 소비로 네트워크 트래픽이 크게 감소했고, 디스크 기반 영속 큐로 메시지 유실 없는 안정적인 백그라운드 처리가 가능해졌다. 오픈소스 Kafka에 버그 리포트와 패치를 기여했다.
핵심 인사이트
- 1.Kafka Streams는 프레임워크가 아닌 라이브러리로서 기존 인프라와 유연하게 통합 가능하다
- 2.토픽 리플리케이션으로 선택적 소비 패턴을 구현하면 네트워크 효율이 크게 향상된다
- 3.디스크 기반 영속 큐는 메모리 기반 큐 대비 안정성과 처리량을 동시에 제공한다