RabbitMQ는 얼랭으로 만들어진 메시지 전송 브로커 오픈소스이다. (2007년 릴리즈)
시스템 간 비동기 메시징을 가능하게 하여 서비스 간 통신을 안정적이고 효율적으로 처리할 수 있게 해준다
플랫폼 중립적이며, 가볍고 다양한 언어들의 클라이언트 라이브러리를 제공하고, 유연한 성능과 안정성을 제공한다.
클러스터를 설정할 때 큐를 HA(High Available) 로 설정하여 여러 노드에 저장하므로서, 메시지 손실을 방지한다. 또한 쉽게 새로운 기능을 추가할 수 있고, Federation 플러그인을 통해 데이터 동기화와 다중 마스터 복제를 구성할 수 있다.
최근 MSA 환경에서 가장 일반적으로 쓰이는 기술중에 하나이며, 대량의 데이터 전송 시 발생할 수 있는 과부하를 분산시키며, 비동기 처리와 지연이 필요한 작업을 효과적으로 관리 해줄 수 있다.
// brew install
[<https://brew.sh/>](<https://brew.sh/>)
// 설치 전에 brew 업데이트
brew update
// rabbitmq 설치
brew install rabbitmq
도커의 경우
# latest RabbitMQ 4.0.x
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:4.0-management