'RabbitMQ 란'에 해당되는 글 1건

  1. 2016.09.05 RabbitMQ 사용하기-1

RabbitMQ 사용하기-1

개발 2016. 9. 5. 23:06

# RabbitMQ

--------------------------------------

[참고자료](http://killins.egloos.com/3025514)


1. 소개

- 표준 AMQP (Advanced Message Queueing Protocol) 메세지 브로커 소프트웨어(message broker software) 오픈소스이다

- erlang 언어로 만들어졌을 뿐만 아니라, clustering과 failover를 위한 OTP framework로 서버가 만들어져 있다

- MQ (Message Queuing) 란

- 서로 다른 프로세스나 프로그램 사이에 메시지를 교환할때 AMQP(Advanced Message Queueing Protocol)을 이용

- AMQP는 메세지 지향 미들웨어를 위한 open standard application layer protocol 이다

- AMQP를 이용하면 다른 벤더 사이에 메세지를 전송하는 것이 가능한데 JMS (Java Message Service)가 API를 제공하는것과 달리 AMQP는 wire-protocol을 제공하는데 이는 octet stream을 이용해서 다른 네트워크 사이에 데이터를 전송할 수 있는 포멧인데 이를 사용한다

- 용도 

- 대용량 데이터를 처리하기 위한 배치 작업이나, 체팅 서비스, 비동기 데이터를 처리할때 사용한다


2. 동작

- Producer: 메시지를 보내는 Application

- Consumer: 메시지를 받는 User Application

- Publish: Producer 가 메시지를 보냄

- Subscribe: Consumer가 메시지를 수신하기 위해 Queue를 실시간으로 리스닝 하기로 만든다

- Exchange:

- Producer가 전달한 메시지를 Queue에 전달하는 역할

- 메시지가 Queue에 직접 전달되는 것이 아니라 Exchange Type이라는 속성에 정의한데로 동작

- RoutingKey: Exchange를 생성하거나 메시지를 Publish할 때 사용하는 Key, Exchange가 Queue에 메시지를 전달할지 결정하는 Key

- Queue: 메시지를 저장하는 버퍼(Queue는 Exchange에 Binding된다)

- durable 속성: 메세지를 디스크에 저장. memory에 저장하는 것은 transient라고 한다

- auto-delete 속성: 모든 consumer가 unsubscribe 하면, 해당 queue는 자동으로 없어진다

- 동일한 queue 가 들어오면 추가하지 않는다?

- Bindings: Exchange와 Queue를 연결

- Virtual Host : 웹서버의 virtual host concept과 같이, 하나의 물리적인 서버에 여러 개의 가상 서버를 만들 수 있다

- Channel : 하나의 물리적인 connection 내에 생성되는 가상 논리적인 connection들. Consumer의 process나 thread는 각자 이 channel을 통해서 queue에 연결 될 수 있다.

- Connection : 물리적인 TCP Connection, 보안이 필요할 경우 TLS(SSL) Connection을 사용할 수 있음


3. Exchange 타입

   

'개발' 카테고리의 다른 글

Ubuntu 머신에서 다른 머신 제어하기  (0) 2016.09.09
Ubuntu 설치 후 초기 환경 세팅  (0) 2016.09.07
RabbitMQ 사용하기-2  (0) 2016.09.06
API 모델링 및 개발 - 2  (0) 2016.09.01
API 모델링 및 개발  (0) 2016.08.31
Posted by 감각적신사
,