1230

6democratickim9·2021년 12월 30일
0
post-thumbnail

!

MessageQueue

  • 메신저의 특성상 사용자가 많아짐 -> 채팅의 양이 늘어남

    => 대용량 데이터가 실시간으로 전달

  • 비동기식 발행 - 소비 방식

  • 사용 이유

    • 동기식 요청 - 응답 방식 으로 처리 시 끊임없이 메세지를 주고받는 채팅시스템에 유연하게 대처하지 못하게 됨

    • 메세지 큐 방식

      • 동기식 방식: 메세지를 발행하는 사용자와 이를 소비하는 사용자 간의 강한 결합으로 인하여 발생하는 깨지기 쉬운 성질 등을 가짐
      • 동기식 방식은 마이크로 서비스가 가지는 '느슨한 결합' 이라는 특성과 어울리지 않음
      • 라이선싱 서비스와 조직 서비스 사이의 중개자 역할을 하게 됨으로써 마이크로서비스의 특징인 '느슨한 결합', '내구성', '확장성', '유연성' 을 제공
  • 메세지 큐의 특징

    • 비동기: 나중에 처리 가능

    • 비동조: 애플리케이션과 분리 가능

    • 탄력성: 일부가 실패 시 전체에 영향 받지 않음

    • 확장성: 다수의 프로세스들이 큐에 메세지를 보낼 수 있음

      ++ 실패 시 재실행 가능

      ++ 작업이 처리된 것 확인 가능

  • 메세지 큐 사용처

    • 다른 곳의 API로부터 데이터 송수신 가능
    • 다양한 애플리케이션에서 비동기 통신 가능
    • 이메일 발송 및 문서 업로드 가능
    • 많은 양의 프로세스 처리 가능

RabbitMQ vs Kafka

  • Rabbitmq
    • 구성이 쉽다
    • 제품 성숙도가 높음
    • 개방형 프로토콜을 위한 AMQP를 구현하기 위해 개발
    • 필요에 따라 동기/비동기 가능
    • 소비자중심의 설계
  • Kafka
    • 구독방식의 비동기식 구성
    • 고성능 고가용성
    • 분산처리에 효과적으로 설계됨
    • 생산자 중심의 설계
    • 범용 메세징 시스템에서 제공되는 다양한 기능은 제공되지 않음!
profile
인생은 그렇게 호락호락하지 않다..

0개의 댓글