Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

JMS 메시징 모델 완벽 이해: 점대점(P2P) vs 발행/구독(Pub/Sub) 차이점

JMS(Java Message Service)란 무엇인가?

JMS는 Java Message Service의 약자로, 자바 플랫폼에서 메시지 기반 시스템을 구축할 수 있도록 자바가 공식적으로 제공하는 표준 API입니다. 애플리케이션 간에 비동기적으로 데이터를 주고받는 메시징 시스템을 손쉽게 구현할 수 있게 해줍니다.

중요한 점은 JMS가 하나의 API이자 명세(Specification)라는 것입니다. 즉, JMS 자체에는 구현 코드가 포함되어 있지 않으므로, 실제로 사용하려면 ActiveMQ, WebLogic Messaging 같은 서드파티 메시징 프로바이더(구현체)가 반드시 필요합니다.

JMS가 지원하는 두 가지 메시징 도메인

JMS는 다음 두 가지 메시징 모델을 지원합니다.

  • 점대점(Point to Point, P2P) 메시징
  • 발행/구독(Publish/Subscribe, Pub/Sub) 메시징

두 모델은 메시지 전달 방식과 구조에서 뚜렷한 차이를 보이며, 아래 표에서 핵심적인 차이점을 한눈에 비교할 수 있습니다.

P2P와 Pub/Sub의 주요 차이점 비교

번호구분 기준점대점(P2P) 메시징발행/구독(Pub/Sub)
1기본 구조1:1(일대일) 메시지 전달 방식입니다. 메시지는 큐(Queue)에 저장되며, 해당 메시지는 오직 하나의 수신자만 읽을 수 있습니다.1:N(일대다) 메시징 방식입니다. 메시지는 토픽(Topic)으로 전송되며, 여러 소비자가 동시에 수신할 수 있습니다.
2풀(Pull) / 푸시(Push) 방식풀(Pull) 방식을 사용합니다. 클라이언트가 메시지를 받기 위해 매번 큐를 폴링(polling)해야 합니다.푸시(Push) 기반 모델을 사용합니다. 메시지가 구독 중인 모든 소비자에게 자동으로 브로드캐스트됩니다.
3응답 확인(Acknowledgment)메시지 수신에 대한 응답 확인이 필수입니다.응답 확인은 선택 사항입니다.
4시간 종속성발신자와 수신자 간에 시간 종속성이 없습니다. 수신자가 나중에 접속해도 큐에 저장된 메시지를 가져올 수 있습니다.발행자와 구독자 간에 시간 종속성이 존재합니다. 구독자는 메시지가 발행되는 시점에 구독 상태여야 메시지를 받을 수 있습니다.

정리: 어떤 모델을 선택해야 할까?

점대점(P2P) 모델은 작업을 단일 처리자에게 확실하게 전달해야 하는 경우(예: 주문 처리, 작업 큐)에 적합하고, 발행/구독(Pub/Sub) 모델은 하나의 이벤트를 여러 시스템에 동시에 알려야 하는 경우(예: 뉴스 피드, 실시간 알림)에 적합합니다. 애플리케이션의 요구 사항에 따라 적절한 메시징 도메인을 선택하는 것이 중요합니다.