AMQP(Advanced Message Queuing Protocol)
- 프로세스 또는 프로그램 인스턴스가 데이터를 교환할 때 사용하는 방법
- AMQP 프로토콜 중 Rabbit MQ 사용 예정
구성요소

Exchange
- publisher에게 수신한 메시지를 큐에 분배하는 라우터 역할
Type
- Direct exchange
- Exchange에 바인딩 된 Queue 중에서 메시지의 라우팅 키와 매핑되어 있는 Queue로 메시지를 전달한다.
- 1:1 관계로 Unicast 방식에 적합하며, 주로 라운드 로빈 방식으로 여러 workers(Consumer)간 task를 분리에 사용된다.
- Fanout exchange
- 메시지의 라우팅 키를 무시하고 Exchange에 바인딩 된 모든 Queue에 메시지를 전달한다.
- 1:N 관계로 메시지를 브로드캐스트하는 용도로 사용된다.
- Topic exchange
- Exchange에 바인딩 된 Queue 중에서 메시지의 라우팅 키가 패턴에 맞는 Queue에게 모두 메시지를 전달한다.
- Multicast 방식에 적합하다.
- Headers exchange
- 라우팅 키 대신 메시지 헤더에 여러 속성들을 더해 속성들이 매칭되는 큐에 메시지를 전달한다.
Biding
Queue
- 메시지를 메모리나 디스크에 저장했다가 Consumer에게 메시지를 전달하는 역할