메시징 플랫폼 비교 - SQS, SNS, Kafka, RabbitMQ

2022. 2. 11. 11:03ETC

메시징 플랫폼을 선택할 때, 각 제품의 특징, 장단점을 비교하여 선택에 도움이 될 수 있도록 비교해보겠습니다.

먼저 각 제품에 대한 기본적인 개념과 특징들은 아래 글들을 참고해주세요.

1. AWS SQS란? - https://yoonbing9.tistory.com/126
2. AWS SNS란? - https://yoonbing9.tistory.com/127
3. Kafka란? - https://yoonbing9.tistory.com/128
4. RabbitMQ란? - https://yoonbing9.tistory.com/129

SQS vs SNS vs Kafka vs RabbitMQ 스펙 비교

  SQS SNS Kafka RabbitMQ
오픈소스 - - 오픈소스 오픈소스
브로커 구분 메시지 브로커 메시지 브로커 이벤트 브로커 메시지 브로커
Queue/Topic Queue Topic Topic Queue
동기/비동기 둘 다 가능 비동기 비동기 둘 다 가능
메시지 전달 보장 수준 At least once(Standard),
Exactly once(FIFO)
메시지 전달 후 삭제하기 때문에 상실 가능. At most once,
At least once,
Exactly once
At most once,
At least once
메시지 순서 보장 수준 Standerd - Best effort,
FIFO - 순서 보장
  한 컨슈머 그룹 기준으로 파티션의 메시지는 순서 보장 하나의 큐에 하나의 컨슈머 연결시 순서 보장
모니터링 SQS 콘솔, Cloud Watch 콘솔 이용 가능 SQS 콘솔, Cloud Watch 콘솔 이용 가능 모니터링 오픈소스 연동해야함. 모니터링 오픈소스 연동해야함.
성능 300TPS 무제한TPS 100000TPS 20000TPS
개발 언어 - - Scala Erlang
프로토콜   HTTP, HTTPS, SMTP, SMS, SQS, application, lambda and firehouse Binary protocol over TCP AMQP, MQTT, STOMP

메시지 전달 보장 수준

종류 개요 재전송유무 중복 삭제 유무 비고
At Most Once 1회 전달 시도 X X 메시지는 중복되지 않지만 상실될 수 있음
At Least once 적어도 1회는 전달 O X 메시지가 중복될 가능성은 있지만, 상실되지는 않음
Exactly Once 1회만 전달 O O 중복되거나 상실되지도 않고 확실하게 메시지가 도달하지만, 성능이 나오지 않음

 

메시지 플랫폼을 선택할 때, 단순 제품 스펙만 비교해서 선택할 순 없을 것 같습니다.

제품 스펙은 적용할 프로젝트와 제품이 잘 맞는지 판단하는 것에 도움을 줄 수 있지만,

제품 선택에는 다양한 관점이 필요한 것 같습니다.

예를 들어, 팀에서 하나의 메시지 플랫폼으로 통일할 것인지, 인프라 구축 비용, 운영 비용 등

이런 것들은 스펙만으로 판단할 수 없고 사용 경험이 도움이 될 것 같습니다.

'ETC' 카테고리의 다른 글

메시지 플랫폼 장애 에러 처리 비교 - SQS, RabbitMQ, Kafka  (0) 2022.02.15
RabbitMQ란?  (0) 2022.02.09
Kafka(카프카)란?  (0) 2022.02.07
AWS SNS란?  (0) 2022.02.07
AWS SQS란?  (0) 2022.02.07