목록 보기
Hive 채팅 시스템 구축기
백엔드

Hive 채팅 시스템 구축기

컴투스
컴투스
2025년 7월 16일

두줄요약

Hive 채팅 시스템의 실시간 통신 구조와 라우팅, 부가기능 분리 전략을 정리했습니다. Netty, WebSocket, Akka, gRPC, Armeria를 활용한 설계 고민을 공유했습니다.

구조와 흐름

  • Hive 채팅 시스템의 구축 경험과 설계 고민을 공유하는 기술 글
  • 실시간 채팅을 위해 Netty 기반 커넥션 관리와 WebSocket 프로토콜 구성
  • 메시지 라우팅을 위해 Akka ActorSystem과 Receptionist를 활용한 서버 간 전달 구조 설계
  • 비속어 필터링과 로그 저장 등 부가 기능은 Worker 서버와 gRPC, Armeria로 분리 처리

선택 이유

  • HTTP의 요청-응답, 비연결성 모델은 실시간 양방향 채팅에 부적합
  • WebSocket은 실시간 메시지 송수신에 적합하고, Netty는 커넥션 관리와 이벤트 처리에 유리
  • Akka는 서버 위치를 몰라도 Actor 호출이 가능해 분산 라우팅 단순화
  • gRPC와 Armeria는 비동기 통신, 확장성, 안정성 측면에서 부가기능 처리에 적합

주의할 점

  • ChannelPipeline 등록 순서에 따라 ping/pong 기반 유휴 커넥션 처리 가능 여부가 달라짐
  • PacketType이 늘어날수록 분기 처리 복잡도 증가
  • WebSocket은 비동기 통신이므로 요청과 응답 식별을 위한 패킷 구분 필요
  • 외부 통신에는 CircuitBreaker와 Retry 같은 장애 대응 설정 필요

댓글 0

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

댓글을 불러오는 중...