목록 보기
라이브채팅 플랫폼 구현기 2탄 : 아키텍처 및 성능 테스트
아키텍처

라이브채팅 플랫폼 구현기 2탄 : 아키텍처 및 성능 테스트

두줄요약

비동기 메시지 처리와 Kafka 중심의 분산 라이브채팅 아키텍처를 설계했습니다. k6 기반 성능 테스트로 브로커와 로드밸런싱 이슈를 개선했습니다.

문제 상황

  • 대용량 메시지 트래픽, 1초 이내 전달, 인증·금칙어·관리 제재·영구 저장 요구사항
  • 단일 채팅 룸의 과밀 방지를 위한 자동 분할·병합과 실시간 지표 모니터링 필요

구조와 흐름

  • WebSocket 기반 채팅 서버와 분산 서버 간 Kafka 메시지 전달 구조
  • Kafka Streams의 금칙어·도배 스트림 처리, Redis의 룸·접속 정보·최근 메시지 캐시
  • Sink Processor를 통한 MongoDB 영구 저장과 Elasticsearch 지표 적재

선택 이유

  • 처리 구간 부하 격리와 후처리 로직 확장성을 위한 비동기 처리 방식 채택
  • 구현 난이도와 학습 기회를 고려한 Kotlin Coroutine 기반 비동기 프로그래밍 선택
  • 서버 리소스 균등화와 룸 정보 관리 단순화를 위한 룸 분산 배치

성능/운영 포인트

  • Pod당 동시접속 2천 명, 메시지 왕복 1초 이내 목표의 지속적 성능 테스트
  • k6와 Kubernetes 기반 분산 부하 테스트, CloudWatch 연동 결과 확인
  • Redis Pub/Sub·Google Cloud Pub/Sub·Round Robin 로드밸런서 이슈 검증 후 Kafka와 Consistent Hashing 적용

카카오 계열사 채용30건

채용 사이트에서 전체 보기

다음 읽기

#WebSocket 주제를 이어서 읽기

라이브채팅 플랫폼 구현기 1탄 : 개발 언어 및 기반기술 조사

20만 동시 접속 실시간 채팅 요구를 위해 Kotlin·Spring Boot·WebSocket 기반을 선택했습니다.\nKafka 스트림과 아호-코라식으로 확장성과 실시간 금칙어 처리를 설계했습니다.

카카오엔터테인먼트FE
카카오엔터테인먼트FE
아키텍처

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...