| 개발자 | 아파치 소프트웨어 재단 |
|---|---|
| 발표일 | 2012년 |
| 안정화 버전 | 5.0.0
/ 2022년 9월 9일 |
| 저장소 | RocketMQ 저장소 |
| 프로그래밍 언어 | 자바 |
| 운영 체제 | 크로스 플랫폼 |
| 종류 | 스트림 프로세싱, 메시지 브로커 |
| 라이선스 | 아파치 라이선스 2.0 |
| 웹사이트 | rocketmq |
RocketMQ는 낮은 지연 시간, 고성능 및 신뢰성, 조 단위(trillion-level) 용량 및 유연한 확장성을 갖춘 분산 메시징 및 스트리밍 플랫폼이다. 이 플랫폼은 2012년 알리바바에서 오픈 소스로 공개한 3세대 분산 메시징 미들웨어이다. 2016년 11월 21일, 알리바바는 RocketMQ를 아파치 소프트웨어 재단에 기증했다. 이듬해 2월 20일, 아파치 소프트웨어 재단은 Apache RocketMQ를 최상위 프로젝트(Top-Level Project)로 발표했다.
RocketMQ의 개발은 3단계로 나눌 수 있다.
1세대는 데이터 전송에 푸시(push) 모드를, 데이터 저장에 관계형 데이터베이스를 사용한다. 메시지 전달에서 낮은 지연 시간을 보이며, 분산 트랜잭션을 사용하는 일반적인 전자상거래 플랫폼의 요구 사항을 충족한다.
2세대는 데이터 전송에 풀(pull) 모드를, 데이터 저장에 파일 시스템을 사용한다. 안정성과 신뢰성에 더 집중했으며, 응답 시간과 로그 수집 측면에서 카프카와 비슷한 성능을 보인다.
3세대는 풀(Pull) 모드와 일부 푸시(Push) 동작을 결합한 형태이다. 1세대와 2세대의 장점을 계승하며, 동시성 및 대규모 데이터 시나리오에서 고성능을 발휘한다.
다양한 메시징 솔루션 간의 많은 비교가 이루어졌으며, 토픽(topic)의 수가 급격히 증가할 때 RocketMQ의 처리량(throughput)이 카프카보다 훨씬 덜 감소한다는 점이 널리 알려져 있다. 고성능, 고신뢰성 및 실시간 처리 능력이라는 특성 덕분에, MQTT와 같은 모든 유형의 메시징 시나리오에서 RocketMQ와 다른 프로토콜 구성 요소를 결합하려는 노력이 점점 더 많아지고 있다.
| 클라이언트 SDK | 프로토콜 및 명세 | 순서 보장 메시지 | 예약 메시지 | 일괄 처리 메시지 | 브로드캐스트 메시지 | 메시지 필터 | 서버 트리거 재전송 |
|---|---|---|---|---|---|---|---|
| Java, C/C++, Python, Go, Nodejs | 풀 모델, TCP, JMS, OpenMessaging 지원 | 엄격한 메시지 순서 보장 및 원활한 확장 지원 | 지원 | 지원, 메시지 손실 방지를 위한 동기화 모드 포함 | 지원 | 지원, SQL92 기반 속성 필터 표현식 | 지원 |
| 메시지 저장소 | 메시지 소급 | 메시지 우선순위 | 고가용성 및 장애 조치 | 메시지 추적 | 설정 | ||
| 고성능 및 저지연 파일 저장소 | 타임스탬프 및 오프셋 두 가지 지표 지원 | 지원하지 않음 | 지원, 마스터-슬레이브 모델, 추가 키트 불필요 | 지원 | 즉시 사용 가능(Out of box), 사용자는 몇 가지 설정만 주의하면 됨 |

RocketMQ는 네임 서버(name servers), 브로커(brokers), 프로듀서(producers), 컨슈머(consumers)의 4개 부분으로 구성된다. 각 부분은 단일 실패 지점(Single Point of Failure) 없이 수평적으로 확장할 수 있다. 왼쪽 그림과 같다.
서비스 탐색을 위한 경량 구성 요소이며, 라우팅 정보를 읽고 쓰는 데 사용된다. 각 네임 서버는 전역 정보를 기록하며 빠른 저장소 확장을 지원한다.
경량 TOPIC 및 QUEUE 메커니즘을 사용하여 데이터 저장을 관리한다. 내결함성을 실현하기 위해 데이터의 2중 또는 3중 복사본을 제공한다. 클라이언트는 푸시 및 풀 모델로 메시지를 가져올 수 있다. 또한, 재해 복구와 풍부한 메트릭 통계도 지원한다.
프로듀서는 분산 배포가 가능하며, 프로듀서에서 브로커로 전달되는 메시지는 다중 경로를 통해 부하 분산될 수 있다. 또한, 빠른 실패 처리와 낮은 지연 시간을 지원한다.
컨슈머 또한 푸시 및 풀 모델로 분산 배포할 수 있으며, 실시간으로 메시지를 구독하고 클러스터 단위로 메시지를 소비할 수 있다. 메시지 브로드캐스팅도 지원한다.
Apache RocketMQ가 연관될 수 있는 분야는 최소 다섯 가지가 있다:
RocketMQ 팀은 커뮤니티를 활발하게 유지하기 위해 많은 노력을 기울이고 있다. 새로운 기여자들과 커미터들을 유치하기 위해 베이징, 선전, 항저우에서 밋업(Meetup), 워크숍, ApacheCon 및 코드 마라톤이 정기적으로 개최된다. 현재 RocketMQ를 위한 OpenMessaging 벤치마킹 제품군을 사용할 수 있으며, 이는 RocketMQ가 분산 메시징에 대한 글로벌 표준을 유지하는 데 도움을 준다. 버전 관리의 경우, 일련의 표준화된 소프트웨어 개발 프로세스가 채택되었다. 최신 버전은 4.2.0이며, 4.3.0이 준비 중이다. 더 자세한 정보는 여기에서 얻을 수 있다.
2016년 중국에서 가장 인기 있는 오픈 소스 소프트웨어상 보관됨 2018-06-19 - 웨이백 머신
2017년 중국에서 가장 인기 있는 오픈 소스 소프트웨어상 보관됨 2018-06-19 - 웨이백 머신
제16회 한중일(CJK) 오픈 소스 소프트웨어 우수 기술상
2018년 중국에서 가장 인기 있는 오픈 소스 소프트웨어상 보관됨 2019-01-02 - 웨이백 머신