래빗MQ(RabbitMQ)는 오픈소스인 범용 메시지 브로커 소프트웨어이다.
RabbitMQ는 온라인 거래 또는 결제 처리와 같이 처리량이 많은 경우에 성능을 개선하는데 사용될 수 있다. 일반적으로 백그라운드 및 cron 작업을 처리하거나 마이크로서비스 간의 메시지 브로커로 사용된다.
RabbitMQ는 가볍기 떄문에 클라우드에 배포하기 쉽다. 여러 메시징 프로토콜을 지원하고 분산형 및 혼합형 구성에서 배포를 지원하여 다양한 상황에 적용이 가능하다.
- RabbitMQ를 사용하면 메세지를 신뢰성 있고 빠르게 큐 형태로 전달할 수 있다.
- 메시지는 큐에 도착하기 전에 교환을 통해 라우팅되므로 복잡한 라우팅이 가능하다.
- 추적 지원을 제공하여 메시징 시스템이 잘못 작동할 경우 발생하는 현상을 디버그하고 발견할 수 있다.
- RabbitMQ는 다양한 방식으로 확장할 수 있는 플러그인을 제공한다. 사용자 지정 플러그인을 작성할 수도 있다.
- RabbitMQ는 topic에 대한 메시지를 한번 처리해줘야 할 때 유용하다. 그렇기 때문에 위에서도 언급했듯, 백그라운드 및 cron 작업을 처리하거나 마이크로서비스 간의 메시지 브로커로 주로 사용된다.
- RabbitMQ는 Kafka보다 유연하며, 라우팅 기능을 사용하여 구조의 변화에 빠르게 대응할 수 있다.
- consumer를 동적으로 추가할 때, RabbitMQ에서는 Publisher를 변경하지 않아도 된다고 한다.
- AMQP 1.0, AMQP 0-9-1, STOMP, MQTT 같은 레거시 프로토콜을 사용하는 경우에도 적용할 수 있다.
- 여러 마이크로서비스간의 복잡한 상호작용이 있는 경우 사용할 수 있다.