RabbitMQ
메시지가 생성되면 Exchange에 전송되며, 여기에서 어떤 Queue에게 라우팅 할 것인지 결정하게 됩니다.
구분 | 설명 |
Direct Exchange | 메시지의 Routing Key와 정확히 일치하는 Queue로 라우팅 |
Topic Exchange | 특정 라우팅 패턴과 일치하는 Queue로 라우팅 |
Fanout Exchange | 바인딩 된 모든 Queue에 메시지를 라우팅 |
- ① : 메시지 생산자로부터 메시지를 수신합니다.
- ② : 메시지를 Exchange에 전송합니다.
- ③ : 메시지를 적절한 Queue로 라우팅 합니다.
- ④ : 메시지가 소비되기 전까지 Queue에 대기합니다.
- ⑤ : 메시지가 소비되면 Queue에서 해당 메시지를 삭제합니다
구분 | 설명 |
최초 배포일 | 2007. 02. 08 |
라이선스 | Mozilla Public License |
개발 언어 | Erlang |
클라이언트 지원 언어 | C, C++, .NET, Java, JavaScript, Node.js, Mobile (Objective-C, Swift, Android), Spring Framework, Ruby, Python, PHP, Rust, ... |
지원 프로토콜 | - AMQP : 메시지 브로커의 기본 프로토콜 - STOMP : 텍스트 기반 메시징 프로토콜 - MQTT : 메시지 게시 / 구독에 사용되는 프로토콜 - HTTP 및 웹 소켓 |
특징 | - AMQP 프로토콜을 기반으로 구현된 프로젝트 - 브로커 중심적이며, 생산자와 소비자 간의 메시지 전달을 보장하는 것에 초점 - 브로커가 메시지의 전달 상태 확인 가능 (Kafka는 메시지 소비자가 전달 상태를 기억해야 함) - 최소 한 번의 메시지 전송 보장 - 초당 20,000개 정도의 메시지 처리 가능 - 모니터링 및 관리를 위한 웹 페이지가 있어 타 프로젝트 대비 운영이 용이하다는 의견 |
선택이 유리한 경우 | - 메시지의 전달 우선순위가 있는 경우 |
'구축 & 운영 > RabbitMQ' 카테고리의 다른 글
Web STOMP 플러그인 설치 (0) | 2022.03.19 |
---|---|
RabbitMQ 설치 (0) | 2022.03.19 |
메시지 브로커 비교 (Apache Kafks vs RabbitMQ vs ActiveMQ) (0) | 2022.03.08 |
ActiveMQ 조사 (0) | 2022.03.08 |
Apache Kafka 조사 (0) | 2022.03.08 |