AMQP (Advanced Message Queue Protocol)

I. 응용 계층 메시지 전달 표준, AMQP

가. AMQP(Advanced Message Queue Protocol)의 개념

클라이언트 미들웨어 브로커 간 데이터 교환을 위한 MQ기반 메시지 교환 프로토콜

나. AMQP 특징

이기종 간
메시지 교환
– 이기종 시스템 간 벤더 종속 없이 표준화된 네트워크 프로토콜 사용
속도 및
응답성
– 비용/기술/시간적 측면에서 최대한 효율적 메시지 교환 위한 MQ 사용

다. AMQP 기본 구성

Publisher– 메시지 생성 및 Broker에 송신
Broker– Subscriber에 pub와 매칭 메시지 전달/배포
Subscriber– Broker로부터 매칭된 메시지 수신

 

II. AMQP Routing Model

가. AMQP Routing Model 구성도

구성도설명
– AMQP routing Model은 Exchange, Queue, Binding 등 구성

나. AMQP 구성요소

구성요소특징기능
ExchangeMQ
바인딩
– Publisher로부터 수신 MQ를 binding
– 여러 exchange type 인스턴스 보유
Queue저장 후
전달
– 메시지 저장 후 Subscriber에 전달
– 메시지 타입 exchange에 binding
Binding1:1, 1:N
방식
– exchange와 queue 관계 정의
– 1:N, N:1 등 여러 방식으로 binding
Routing
Key
가상
주소
– 송신 메시지 헤더에 포함 가상 주소
– exchange type은 Routing Key 이용
Exchange
Type
라우팅
알고리즘
– 여러가지 상황에 대해 정의 알고리즘
Fan-out: 모든 큐로 라우팅
Direct: 라우팅 키를 큐에 1:N으로 매칭
Topic: 와일드카드 이용하여 큐에 매칭
Headers: key-value 정의 헤더로 결정

 

III. AMQP의 활용

프로토콜활용 사례기능
RabbitMQOpenstack
메시지큐
– AMQP 프로토콜을 구현한 프로그램
– 오픈소스이며 많은 언어와 OS 지원
ActiveMQJVM기반
APP
– JMS클라이언트, 자바기반 오픈소스
– 다양한 언어와 프로토콜 지원
ZeroMQ임베디드
기반 기기
– 임베디드 네트워크 메시징
– 단순, 효율적 프로토콜 고속 전송

 

콘텐츠 사용 시 출처 표기 부탁 드리고, 궁금한 점이나 의견은 댓글 남겨주세요^^