activeMQ
- Apache ActiveMQ 는 가장 대중적이고 강력한 오픈 소스 메세징 그리고 통합 패턴 서버입니다.
- Apache ActiveMQ는 빠르며, 다양한 언어간의 클라이언트 및 프로토콜을 지원하고, 사용하기 쉬운 엔터프라이즈 통합 패턴 및 많은 고급 기능을 제공하면서 JMS 1.1 및 J2EE 1.4를 완벽하게 지원합니다.
- MOM(메시지 지향 미들웨어)입니다.
- ActiveMQ는 JMS를 지원하는 클라이언트를 포함하는 브로커, 자바 뿐만 아니라 다양한 언어를이용하는시스템간의 통신을할수있게해줍니다. 또한 클러스터링기능 및 DB 그리고 FileSystem을 통해 각 시스템간의 일관성 및 지속성을 유지 시켜줍니다.
- 간단히 정의하면 클라이언트 간 메시지를 송수신 할 수 있는 오픈 소스 Broker(JMS 서버)입니다.
=>즉, activeMQ에서 JMS는 핵심요소입니다.
JMS
JMS 는 자바 기반의 MOM(메시지 지향 미들웨어) API 이며 둘 이상의 클라이언트 간의 메시지를 보냅니다.
- JMS 는 자바 플랫폼, 엔터프라이즈 에디션(EE) 기반이며, 메시지 생성, 송수신, 읽기를 합니다. 또한 비동기적이며 신뢰할 만하고 느슨하게 연결된 서로 다른 분산 어플리케이션 컴포넌트 간의 통신을 허용합니다.
- JMS의 핵심 개념은 Message Broker 와 Destination 입니다.
Message Broker : 목적지에 안전하게 메시지를 건네주는 중개자 역할
Destination: 목적지에 배달될 2가지 메시지 모델 QUEUE, TOPIC
- Queue: Point to Point ( Consumer 는 메시지를 받기 위해 경쟁합니다.)
- Topic: Publish to Subscribe
ActiveMQ 메시지 처리 구조
=> 기본적으로 Message를 생산하는 Producer, activeMQ Broker(Server), Message를 소비하는 Consumer로 구성되어 있습니다.
- QUEUE 모델의 경우 메시지를 받는 Consumer가 다수일 때 연결된 순서로 메시지는 제공됩니다.
- TOPIC 모델의 경우 메시지를 받는 Consumer가 다수일 때 메시지는 모두에게 제공됩니다.
- Consumer 에서는 메시지를 받을 때까지 block 상태인 Receive() 메소드와 리스너를 통해 nonblack 상태로 메시지를 가져올 수 있습니다.
ActiveMQ의 장점
(1) 분리: 대기열은 시스템 사이에 있으며, 하나의 시스템 장애는 다른 대기열에 영향을 주지 않습니다. 메시지 통신은 대기열을 통해 이루어집니다. 시스템이 가동 중일 때도 계속 작동합니다.
( 클라이언트와 서버간의 연결과 큐 대기열의 역할이 분리)
(2) 복구 지원: 큐의 처리가 실패하면 나중에 메시지를 복원 할 수 있습니다.
(3) 신뢰성: 클라이언트 요청을 처리하는 시스템을 생각해보십시오.정상적인 경우 시스템은 분당 100 건의 요청을 받습니다. 이 시스템은 요청 수가 평균을 넘어서는 경우 신뢰할 수 없습니다. 이 경우 Queue는 요청을 관리 할 수 있으며 시스템 처리량을 기초로 주기적으로 메시지를 전달할 수 있습니다.
(큐에서 들어온 메시지에 대한 처리를 관리하기 때문에 신뢰할 수 있는 시스템)
(4) 비동기 처리: 클라이언트와 서버 통신이 비 차단입니다. 클라이언트가 서버에 요청을 보내면 응답을 기다리지 않고 다른 작업을 수행 할 수 있습니다. 응답을 받으면 클라이언트는 언제든지 처리 할 수 있습니다.
참고 : http://activemq.apache.org
'Cloud & NoSQL & Middleware > ActiveMQ' 카테고리의 다른 글
#activeMQ (6) - 서버 구현 및 메시지 송수신 테스트 (2) | 2018.03.03 |
---|---|
#activeMQ (5) - Clustering (0) | 2018.03.03 |
#activeMQ (4) - Broker (0) | 2018.03.02 |
#activeMQ (2) - 용어 (0) | 2018.02.25 |
#activeMQ (1) - 버전 정보 (0) | 2018.02.24 |