Kafka, RabbitMQ, GCP pub/sub

2022. 2. 27. 11:10Cloud Native

    목차
반응형

RabbitMQ

  • 사용 경우
    • 메시지 전달의 신뢰성이 중요한 경우
    • 메시지 처리 순서가 보장되지 않아도 되는 경우
    • 메시지 영속성 없음
  • Advanced Message Queuing Protocol (AMQP)
    • client와 middleware간 message 교환
    • 다른 MQ (e.g., ActiveMQ, ZeroMQ) 등과 data 교환이 용이
  • 동기/비동기 지원
  • Routing
    • Exchanger가 message를 적절히 queue에 분배
  • broker 중심적
    • producer와 consumer간 message 전달 보장의 신뢰성 확보

 

Kafka

  • 사용 경우
    • 높은 처리량이 필요한 경우
    • scale-out이 중요한 경우
    • message 전송 보장이 100%가 아닌 경우
    • streaming data 처리 필요 경우
    • mesage의 영속성이 필요한 경우
  • 분산 처리 system
    • scalability와 high availability
    • 장애 대응 높음
  • disk file system에 data를 저장하여 persistency 보장
  • producer 중심적
  • no routing
    • producer가 직접 topic과 partition을 지정
  • 데이터 신뢰성이 낮음 (대신 빠름)
    • message 전송 보장 시 leader와 follower 모두 H/S 필요
  • RabbitMQ 대비 5배 이상 빠름

 

Google pub/sub

  • Kafka like architecture
    • topic 개념 사용
  • cloud service임 (별도 설치 운영 필요 없음)
  • 메시지 처리 순서 보장 X
  • 영속성 X

 

반응형

'Cloud Native' 카테고리의 다른 글

OAuth 2.0  (0) 2022.04.05
REST API  (0) 2022.03.01
Chat System  (0) 2022.02.27
Cache system  (0) 2022.02.27
DB replication (다중화)  (0) 2022.02.27