rabbitmq
RabbitMQ란?
coffee.
2024. 1. 25. 15:12
RabbitMQ는 오픈소스 AMQP 브로커입니다.
AMQP는 유선을 통해 전송되는 메세지 형식을 포함하는 개발형 프로토콜입니다.
AMQP란?
프로그래밍에서 MQ는 프로세스 또는 프로그램 인스턴스가 데이터를 서로 교환할 때 사용하는 방법
이러한 MQ를 오픈소스에 기반한 표준 프로토콜이 AMQP입니다.
AMQP의 구성요소와 라우팅 알고리즘
AMQP의 라우팅 모델은 Exchange,Queue,Binding 으로 구성된다.
이름 | 설명 |
Exchange | Publisher로부터 수신한 메시지를 큐에 분배하는 라우터 역할 |
Queue | 메시지를 메모리나 디스크에 저장했다가 Consumer에게 메시지를 전달하는 역할 |
Binding | Exchange와 Queue의 관계를 정의한 것 |
Exchange Type
Exchange Type은 메시지를 어떤 방법으로 라우팅 할 지 결정하는 일종의 알고리즘
Exchange는 메시지를 받고, 0 개 혹은 여러개의 큐로 메시지를 전달하는 요소
Direct Exchange
메시지의 routing key를 기반으로 메시지를 전달하는 방식
exchange와 queue가 특정 키로 binding된다.
Fanout Exchange
연결된 모든 queue에게 메시지를 보내는 방식
모든 큐에 동일하게 메세지를 전달하기 때문에 routing key는 메세지에 존재하나 하지 않으나 무시한다.
Topic Exchange
Direct exchange 방식과 마찬가지로 routing key를 사용하는 방식
Direct 방식과 달리 queue와 Exchange가 특정 키가 아닌 패턴으로 binding되어 있다.
Headers Exchange
메세지의 헤더에 여러 속성 값을 사용하여 라우팅 하는 방식