ActiveMQ 란?

아현·2023년 8월 28일
0

Computer Science

목록 보기
44/47

출처


1. ActiveMQ 란?


메세지 큐를 사용하는 이유


  • 기존의 동기식 통신 방식은 사용자로부터 받은 요청을 전부 처리할 때까지 Blocking 상태에 빠지게 된다.

    • 요청이 전부 처리되어야 사용자에게 응답을 주고 다시 요청을 받을 수 있다.
  • 하지만 메세지 큐 사용 시 요청을 큐에 넣기만 하면 다음 사용자의 요청을 받아들일 수 있게 된다.



ActiveMQ


  • JMS(Java Message Service) 클라이언트와 함께 자바로 작성된 오픈 소스 메시지 브로커

  • 하나 이상의 클라이언트나 서버로부터 통신을 조성시키는 엔터프라이즈 기능들을 제공

  • 자바 및 기타 여러 언어 간 클라이언트 지원



2. JMS 란?


  • 자바 기반의 MOM API 표준이며 둘 이상의 클라이언트 간의 메세지를 보낸다.

  • 자바 플랫폼, 엔터프라이즈 에디션 기반이며, 메시지 생성, 송수신, 읽기를 한다.

  • ActiveMQ의 JMS 라이브러리를 사용한 자바 어플리케이션간 통신 가능.

  • 비동기, 신뢰성을 가지며 다른 분산 어플리케이션 컴포넌트 간의 통신을 허용한다.

  • 핵심 : Message Broker, Destination

    • Message Broker : 목적지에 메세지를 건내주는 중개자

    • Destination : 목적지에 배달될 메세지 모델

      • QUEUE : 메세지를 받기 위해 Consumer간 경쟁, 연결된 순서대로 메세지 제공

      • Topic : Pub/Sub 모델, 구독자 모두에게 메세지 제공



메세지 구조


  • 구성 요소

    • 헤더

    • 등록 정보

    • 본문


  • 헤더

    • JMS 메세지 필수 값, 메세지 경로 지정 및 식별에 사용되는 값 포함
    • 헤더 값 설정 방법
      • 메세지 생성 또는 전달 프로세스 중 JMS 공급자에 의해 자동 생성
      • 메세지 생성자를 작성할 때 지정된 설정을 통해 생성자 클라이언트에 의해
      • 메세지 단위의 메세지에서 생성자 클라이언트에 의해



  • 등록 정보

    • 등록 정보 이름, 등록 정보 값의 쌍으로 지정

    • 데이터를 작성한 프로세스에 대한 정보, 데이터가 작성된 시간, 데이터 각 부분의 구조 포함 가능


  • 본문 유형

    • StreamMessage

      • 본문이 Java 프리미티브 값의 스트림을 포함하는 메시지.

        • 이 메시지는 순차적으로 채워지고 읽혀집니다.
    • MapMessage

      • 본문에 일련의 이름-값 쌍을 포함하는 메시지.

        • 항목 순서는 정의되지 않습니다.
    • TextMessage

      • 본문에 Java 문자열을 포함하는 메시지.

        • 예를 들어, XML 메시지
    • ObjectMessage

      • 본문에 일련화된 Java 객체를 포함하는 메시지
    • BytesMessage

      • 본문에 해석되지 않은 바이트의 스트림이 포함된 메시지

JMS API 구현 순서


ConnectionFactory->

Connection->

Session->

MessageProducer->

send



profile
For the sake of someone who studies computer science

0개의 댓글