본문으로 바로가기

[JAVA] JMS ( Java Message Service )

category 프로그래밍/JAVA 2020. 2. 11. 20:12
728x90
반응형

JMS는 JAVA 프로그램에서 시스템의 메시지 생성, 송신, 수신, 삭제 등의 방법을 제공해줍니다.

리눅스의 IPC와 비슷한 개념이라고 보시면됩니다.

프로세스 간의 데이터를 교환하기 위한 목적으로 만들어졌으며, 사용하기도 쉽게 되어 있습니다

JMS는 크게 메시지를 생산하는 production과 소비하는 consumption으로 나눌 수 있습니다.

 

 

 

JMS는 크게 두가지 타입의 메시징 모델을 지원합니다.

1. Point to point, P2P ( 1-1 )
이 모델은 queue라고 불리는 하나의 채널(메시지를 송/수신하는 통로)을 경유하여 송/수신합니다.
여기서 송신 하는쪽은 producer이고, 수신받는 쪽은 consumer입니다.
메시지는 queue로 전송 되고, 여러 개의 consumer가 같은 메시지를 받기 위해 대기중이라도, 하나의 consumer에 전송이 됩니다.
이 과정에서 동기/비동기 모두 지원을 합니다.

2. Publis and subscribe ( 1-Many )
이 모델은 topic이라고 불리는 하나의 채널(메시지를 송/수신하는 통로)을 경유하여 송/수신합니다.
P2P와 달리, topic을 경유해 전달된 메시지는 여러 subscriber(consumer)에게 전달될 수 있습니다.
즉, 브로드캐스팅이 됩니다.
모든 subscriber는 같은 메시지를 받을 수 있습니다.

JMS는 3가지의 객체들이 필요합니다.

1. 메시지를 송/수신할 주체가 되는 메시징 시스템 프로바이더와 연결할 컨넥션을 생성
2. 메시지를 송/수신하기 위한 세션 생성
3. 메시지를 생성/소비하기 위한 Producer, Consumer 생성

그 후, 메시지를 만들어 송/수신할 수 있습니다.

JmsTemplate 클래스를 사용하여 JMS를 간편하게 사용할 수 있습니다.

728x90
반응형