RabbitMQ
RabbitMQ is the most widely deployed open source message broker.
With more than 35,000 production deployments of RabbitMQ world-wide at small startups and large enterprises, RabbitMQ is the most popular open source message broker.
Features
- Robust messaging for applications
- Easy to use
- Runs on all major operating systems
- Supports a huge number of developer platforms
- Open source and commercially supported
이벤트 버스의 RabbitMQ 구현
RabbitMQ_implementation_of_event_bus.png
See also
- Advanced Message Queuing Protocol (AMQP)
- ActiveMQ
- ZeroMQ
- Kafka
- MQTT
- Streaming Text Oriented Messaging Protocol (STOMP)
Favorite site
- RabbitMQ web site
- RabbitMQ를 이용하여 비동기 데이터처리 시스템 구축하기
- 최신 메시지 큐(Messgae Queue) MQ 기술 - 자바 에서 쓰이는 최신 메시지 큐(Messgae Queue) MQ 에 대해
- [추천] (node.js) rabbitMQ를 이용하여 메시지 송수신 (Node.js)
Article
- SQL Maxis: RabbitMQ를 Postgres Queue로 교체한 이유
- RabbitMQ를 걷어내고 PostgresDB에 SQL을 이용한 큐로 교체
- 교체에는 반나절 정도 걸렸고, 소스는 580라인 줄어듬
- 훨씬 중요한 것은 안정성과 복원성(Resiliency)가 크게 향상 되었다는 것
- RabbitMQ 같은 큐 시스템의 문제에 대한 얘기가 아니고, 단순하게 유지하기 위한 노력의 일환
- 이 글을 작성한 Prequel은 대규모 데이터 파이프라인으로 B2B SaaS회사들이 고객의 DB와 동기화 하는 것을 도와주는 제품
- 메시지 전송이 너무 오래 지연되면서 메시지가 취소되는 일이 발생
- 컨슈머가 메시지를 프리페칭 하면서, 현재 메시지를 완료할 때까지 다음 메시지를 잡아놓는 상황이 발생
- 이 프리페치를 0으로하면 무한대가 되어서 프리페치를 비활성화 하는게 불가능
- 메시지를 받아서 처리하는 작업들이 보통 장기작업(데이터 전송)이어서 생기는 문제
- 읽기/쓰기 Row-Level Lock을 이용해서 하나의 컨슈머만 작업을 읽도록 보장
- 터무니 없이 간단하지만 완벽하게 작동중