소개

본 장에서는 Jakarta Messaging(이하 JMS)를 간단히 소개한 뒤 JEUS MQ의 특징에 대해 설명한다.

1. Jakarta Messaging(JMS)

JMS는 애플리케이션 간의 통신을 메시지 기반으로 수행하기 위한 Java 표준 API를 정의한 것이다. 여기에는 메시징에 필요한 구성 요소 및 메시지 모델에 해당하는 인터페이스를 정의하고 이들 간의 관계를 설명하고 있다.

JMS는 다음과 같은 특징을 갖는다.

  • 느슨한 결합 구조

    메시지 송신자와 수신자는 서로에 대해 알 필요가 없다.

  • 비동기 통신

    메시지 수신자는 요청하지 않아도 서버에 도착하는 대로 메시지를 전달받을 수 있다.

  • 신뢰성 있는 메시지 전달

    메시지가 반드시 한 번(Once-and-Only-Once) 전달되는 것을 보장한다.

figure jms messaging
JMS Messaging

JMS에 대한 보다 자세한 설명이나 API 사용법에 대해서는 JMS 스펙 문서를 참고한다.

2. JEUS MQ의 특징

JEUS MQ(Message Queue)는 TmaxSoft의 Jakarta EE 서버인 JEUS에 포함된 JMS 스펙의 구현체로 Non-Blocking I/O와 XA 트랜잭션을 지원하며 보안이 강화된 가용성 높은 메시지 서비스를 제공한다.

JEUS MQ는 JMS 버전 2.0 스펙을 지원하며 다음과 같은 주요 특징을 갖는다.

  • Non-Blocking I/O 지원

    Non-Blocking I/O를 사용하여 같은 시스템 리소스로 더 많은 클라이언트를 동시에 처리할 수 있다.

  • XA 트랜잭션 지원

    JMS 스펙에서 선택 사항으로 정의되어 있는 XA 트랜잭션을 지원한다.

  • 보안 강화

    SSL(Secure Socket Layer) 통신을 지원하며, JEUS Security를 사용할 수 있다.

  • 고가용성

    클라이언트는 네트워크나 서버 장애로부터 자동으로 장애가 극복된다.

  • 규모 가변성

    클라이언트나 메시지 처리량이 증가해도 JEUS MQ 클러스터링을 통해서 부하를 분산할 수 있다.