Kafka vs Redis vs RabbitMQ

5w31892p·2023년 4월 24일
0

프로젝트

목록 보기
3/3

STOMP와 함께 사용했을 때 각각의 장단점을 비교 후 kafka + stomp를 사용한 채팅 기능을 구현하려고 한다.

우선 실무에 가게 되면 대부분의 대규모의 시스템에서 데이터를 처리하는 경우가 많을 것이기에 kafka로 결정했다.

아래는 STOMP와 사용하였을 때의 각각의 장단점을 정리한 비교 자료 이다.

kafka : 대규모 시스템에서 대용량 데이터를 처리하고 안정성과 확장성이 중요한 경우 적합

redis : 인메모리 데이터 저장소로 실시간 메시징에 적합

rabbitMQ : 다양한 플랫폼에서 사용 가능한 다양한 프로토콜과 라이브러리를 제공


1. Redis + STOMP

장점

  • 인메모리 저장소 -> 높은 성능
  • Pub/Sub 제공 -> 실시간 메시징 구현에 적합

단점

  • 데이터 지속성 부족 -> 메시지 브로커의 역할 대체에는 한계

결론

데이터의 지속성이나 고가용성 등이 필요한 경우에는 다른 메시지 브로커를 사용


2. Kafka + STOMP

장점

  • 대용량 분산 메시지 시스템 -> 데이터 지속성, 안정성, 확장성 등의 장점
  • 데이터 파이프라인에서 다양한 역할 수행 가능 -> 데이터 플랫폼의 핵심 역할 수행 가능

단점

  • 복잡한 설정과 운영 필요
  • 데이터 파이프라인의 기본 개념 필요

결론

대규모 시스템에서 사용하는 것이 적합


3. RabbitMQ + STOMP

장점

  • 메시지 큐 시스템 -> 다양한 프로토콜, 라이브러리 제공 및 다양한 플랫폼에서 사용 가능
  • 편리한 운영과 개발 가능

단점

  • 비싼 라이센스 비용 발생 가능성 높음
  • kafka에 비해 확장성이 상대적으로 떨어짐

WebSocket vs STOMP

  • 메시지 전송의 신뢰성과 안정성이 중요한 경우 STOMP 사용이 적합

0개의 댓글