• 서버 아키텍처 - 메시지 큐, 메시지 브로커, 이벤트 스트리밍 서비스
    아키텍처 공부 2023. 1. 12. 01:39
    반응형

    메시지큐란?

     메시지 큐는 메시지의 무손실을 보장하는 비동기 통신을 지원하는 컴포넌트다. 메시지의 버퍼 역할을 하며 비동기적으로 전송한다. 메세지 큐에 일단 보관된 메세지는 소비자(구독자)가 꺼낼 때까지 안전히 보관된다.

     

     

     생산자/발행자(producer/publisher)라고 불리는 서비스가 메세지를 만들어 메시지 큐에 발행한다. 소비자/구독자(consumer/subscriber)라 불리는 서비스가 메시지를 큐에서 구독한다. 메세지 큐를 이용하면 서비스 간 결합이 느슨해져서 규모의 확장성이 보장되어야하는 안정적 애플리케이션을 구성하기 좋다.

     

     

    메시지큐 사용 시 고려해야하는 사항

     생산자(발행자)는 소비자(구독자) 서비스가 다운되어도 메시지를 발행할 수 있고, 소비자는 생산자 서비스가 가용한 상태가 아니더라도 메시지를 수신할 수 있다. 발행자와 구독자 사이에 느슨한 결합 때문에 문제가 발생할 수 있다. 구독자는 어떤 발행자가 큐에 메시지를 넣어주는지 알 수 없다.

     

     만약, 생산자 서비스를 관리하는 팀 없이, 자동화 후 오랜 시간이 지나 소비자 서비스에서 구독하고 있는 정보가 최신 정보와 다른 것을 발견하였다. 어떤 것 부터 확인해야될까?

    1. 메시지 큐에 정보가 쌓이고 있는지 확인한다.
    2. 메시지 큐의 정보를 소비자 서비스에서 소비하고 있는지 확인한다.
    3. 메시지 큐의 정보를 생산하는 생산자가 잘 작동하고 있는지 확인한다.

    그런데 소비자는 생산자가 어떤 서비스인지 알 수 없다.

     

    메시지큐 용어 및 패턴 (모델)

    • 메시지 브로커: 일반적으로 메시지 브로커를 간단히 메시지 큐라고 부르며, 사실상 메시지 큐는 메시지 브로커의 일부이다.  
    • 포인트-투-포인트 패턴 : 발행자와 구독자가 1:1로 메시지가 한 번만 실행됨.

    • 펍/섭 (pub/sub) 패턴, 발행/구독(publisher/subscriber) 패턴 : 발행자가 토픽에 메시지를 담으면, 여러 구독자가 토픽을 구독해감. 브로드캐스트 스타일의 분배 방법

     

    메시지큐와 이벤트 스트리밍 서비스

     메시지큐와 이벤트 스트리밍 서비스는 매우 비슷하다. 생산자가 있고, 소비자가 있다. 일반적인 이벤트 스트리밍 서비스의 데이터 보존 기간은 24시간이며, 저장기한까지는 동일 메시지를 계속 읽어 올 수 있다는 점이 메시지큐와 다르다. 이벤트 스트리밍 플랫폼은 메시지 전달을 보장하거나 메시지를 수신한 이용자를 추적할 수 없다.

     

    메시지큐 종류

    • 카프카 (kafka)
    • 레빗 MQ (rabbitmq)
    • Amazon SQS, Amazon MQ, Amazon SNS
      • 표준 대기열 : 순서를 보장하지 않음.
      • FIFO 대기열 : 순서를 보장함. 
      • Amazon MQ : 널리 사용되는 다양한 메시지 브로커와 호환되는 관리형 메시지 브로커 서비스이다.
        • 브로커로 Amazon MQ, Rabbit MQ, Active MQ를 사용할 수 있다.
        • 기존에 상용하던 MQ를 호환하여 사용하고 싶을 때 주로 사용한다.
      • Amazon SQS, Amazon SNS : 확장성이 우수하고 사용하기 쉬우며 메시지 브로커를 설정할 필요가 없는 완전 관리형 서비스이다.

     

    이미지 스트리밍 서비스 종류

    • Amazon 키네시스

     

     

    참고자료:

    반응형

    댓글

Designed by Tistory.