가이드라인: JMS
주제
소개
JMS(Java Message Service)는 컴포넌트 간의 의사소통에 사용될 수 있습니다.
비동기 의사소통 및 보증된 전달과 같은 JMS의 기능에서는 엔터프라이즈 어플리케이션의 일반 선택사항으로
작성합니다. JMS는 동기 의사소통에도 사용될 수 있지만, 비동기 사용이 주요합니다.
이 가이드라인은 JMS 사용 시기, 모델링하는 방식 및 적용 가능한 설계 고려사항을 설명합니다.
JMS에 대한 자세한 정보는 개념: JMS를
참조하십시오.
JMS 모델링
JMS 클라이언트는 클래스로 모델링됩니다. 다음 다이어그램은 JMS를 사용하여 메시지를 전송하기 위한
메시지 작성자의 일반적인 상호 작용을 예시합니다.
예에서는 목적지로 대기열을 사용합니다.

JMS 클라이언트는 메시지 리스너 인터페이스를 구현해야 합니다. JMS 프로바이더는 메시지가 도착할 때마다
특정 메소드 onMessage가 호출됨을 확인합니다.

다음 다이어그램에서는 JMS 소비자 클라이언트의 일반 설정을 표시합니다.

JMS 설계
JMS 어플리케이션을 설계하는 두 가지 기본 방식이 있습니다(지점간
및 출력-등록).
지점간 모델에서 JMS는 메시지를 하나의 클라이언트로 전달하는 데 사용됩니다.

메시지 작성자는 메시지를 하나의 대기열로 전송하여 메시지 수신자와 통신합니다.
개념적으로 대기열에는 오직 하나의 소비자가 있지만, 많은 JMS 프로바이더는 여러 소비자가
로드 밸런싱을 지원하게 합니다. 여러 소비자가 사용되는 경우, 각 메시지는 오직 한 명의
소비자에 의해 처리됩니다. 메시지가 소비되거나 만기될 때까지 대기열에 보유됩니다.
출력-등록 모델에서 의사소통 패턴은 여러 생산자가 메시지를 여러 소비자에게 전송할 수
있게 합니다. 소비자는 주제를 등록하고, 미들웨어는 메시지를 소비자에게 전달합니다.

지점간 모델과 대조적으로, 출력 및 등록 모델에서는 모든 클라이언트가 수신할 때까지 주제의 메시지를
보관합니다.
주: JMS 1.1 이후에는 동일한 JMS 어플리케이션에서 이 두 가지 모델을 결합시킬 수 있습니다.
|