아파치 로켓MQ

Apache Rocket
아파치 로켓
Apache RocketMQ logo.svg
개발자아파치 소프트웨어 재단
초기 릴리즈2012; 10년 전(2012년)
안정적 해제
4.5.2 / 2019년 8월 1일; 2년(2019-08-01)
리포지토리로켓MQ 리포지토리
기록 위치자바
운영 체제크로스 플랫폼
유형스트림 처리, 메시지 브로커
면허증아파치 라이선스 2.0
웹사이트rocketmq.apache.org

RocketMQ[1] 대기 시간이 짧고 성능과 신뢰성이 뛰어나며, 용량이 조 단위, 확장성이 유연한 분산형 메시징 및 스트리밍 플랫폼이다.2012년 알리바바가 소싱한 3세대 분산형 메시징 미들웨어다.2016년 11월 21일 알리바바는 RocketMQ를 아파치 소프트웨어 재단에 기부했다.내년 2월 20일 아파치 소프트웨어 재단은 아파치 로켓MQ를 최상위 프로젝트로 발표했다.

역사

로켓MQ의 개발은 3단계로 나눌 수 있다.[2]

1세대는 데이터 전송에 푸시 모드를 사용하고, 데이터 저장소에 관계형 데이터베이스를 사용한다.메시지 전달 지연 시간이 짧고, 분산거래가 가능한 전형적인 전자상거래 플랫폼의[3] 명령어를 충족한다.

2세대는 데이터 전송에 풀 모드를 사용하고, 데이터 저장에는 파일 시스템을 사용한다.안정성과 신뢰성에 더욱 신경을 썼으며, 대응 시간에서는 1세대, 로그 수집에서는 카프카에 견줄 만한 성능을 보이고 있다.

3세대는 Pull 모드와 일부 Push 작동을 결합한다.1세대와 2세대의 장점을 계승하고 있으며, 동시성과 방대한 데이터 시나리오에서 높은 성능을 보이고 있다.

특징들

다양한 메시징 솔루션과 많은 비교가 이루어졌으며, 주제가 급격히 증가하면 로켓MQ의 처리량은 카프카보다 훨씬 적게 떨어진다는 것이 널리 알려져 있다.[4]고성능, 높은 신뢰성, 높은 실시간 능력의 특성 때문에, MQTT 등 모든 유형의 메시징 시나리오에서 RocketMQ와 기타 프로토콜 구성요소의 조합에 점점 더 많은 노력을 기울이고 있다.[5]

클라이언트 SDK 프로토콜 및 사양 주문된 메시지 예약된 메시지 일괄 처리된 메시지 브로드캐스트 메시지 메시지 필터 서버가 다시 전달됨
Java, C/C++, Python, Go, Nodejs 꺼내기 모델, 지원 TCP, JMS, OpenMessaging 메시지를 엄격히 정렬하고 원활하게 확장 가능 지원됨 지원됨, 메시지 손실을 방지하기 위해 동기화 지원됨 지원되는 SQL92 기반 속성 필터 식 지원됨
메시지 저장소 메시지 소급 메시지 우선 순위 고가용성 및 페일오버 메시지 트랙 배열
고성능 및 대기 시간이 짧은 파일 스토리지 지원되는 타임스탬프 및 오프셋 2는 지원되지 않음 다른 키트 없이 지원되는 마스터-슬레이브 모델 지원됨 즉시 작업할 수 있으므로 사용자는 몇 가지 구성에만 주의를 기울이면 된다.

건축

로켓엠큐는 네 가지 부분으로 구성된다: 네임서버, 브로커, 프로듀서, 소비자.각각은 하나의 실패 지점 없이 수평으로 확장할 수 있다.왼쪽 그림과 같이.

NameServer 클러스터

서비스 검색을 위한 경량 구성요소 및 라우팅 정보를 읽고 쓰는 데 사용할 수 있다.각각 글로벌 정보를 기록하고 신속한 스토리지 확장을 지원한다.

브로커 클러스터

이들은 경량 토픽과 큐 메커니즘을 사용하여 데이터 스토리지를 관리한다.내결함성을 실현하기 위해 데이터 사본 2부 또는 3부를 제공한다.그리고 클라이언트는 Push and Pull 모델에서 메시지를 받을 수 있다.또 재해 복구, 리치 메트릭스 통계도 지원한다.

프로듀서 클러스터

생산자는 배포가 가능하고, 생산자가 브로커에게 보내는 메시지는 다중 경로를 통해 균형을 이룰 수 있다.또 빠른 실패와 낮은 대기 시간이 지원된다.

소비자 클러스터

소비자는 푸시앤풀 모델에서도 배포가 가능하며 실시간으로 메시지를 구독하고 클러스터 단위로 메시지를 소비할 수 있다.메시지 방송도 지원한다.

적용들

Apache RocketMQ와 관련된 최소 5가지 측면이 있다.

  • 이기종 시스템의 통합.
  • 응용 프로그램 간 디커플링;
  • 이벤트 주도 메커니즘 및 복잡한 이벤트 아키텍처 모델의 백본
  • 데이터 복제 채널;
  • 유량 계산 엔진과의 통합;
  • 스트림 데이터 액세스.

커뮤니티 유지 관리

RocketMQ 팀은 지역사회를 활성화하는데 많은 일을 했다.밋업, 워크샵, 아파치콘, 코드마라톤이 정기적으로 베이징, 선젠, 항저우에서 열려 새로운 기고자와 커밋을 유치하고 있다.OpenMessaging 벤치마킹 스위트는 현재 RocketMQ에 사용 가능하며, RocketMQ는 분산 메시징에 대한 글로벌 표준과 보조를 맞출 수 있게 한다.[6]버전 관리에 대해서는, 일련의 표준화된 소프트웨어 개발 프로세스를 채택하고 있다.최신 버전은 4.2.0이며, 4.3.0이 진행 중이다.여기서 더 많은 정보를 얻을 수 있다.

수상

2016년 중국 최고 인기 오픈소스 소프트웨어상

2017년 중국 최고 인기 오픈소스 소프트웨어상

제16회 한중일 오픈소스 소프트웨어 우수기술상

2018년 중국 최고 인기 오픈소스 소프트웨어상

2019년 중국 최고 인기 오픈소스 소프트웨어상

참고 항목

참조

  1. ^ "apache/rocketmq". GitHub. Retrieved 2018-05-25.
  2. ^ "From Alibaba to Apache: RocketMQ's Past, Present, and Future". InfoQ. Retrieved 2018-06-26.
  3. ^ Liao, Jianwei; Zhuang, Xiaodan; Fan, Renyi; Peng, Xiaoning (2017). "Toward a General Distributed Messaging Framework for Online Transaction Processing Applications". IEEE Access. 5: 18166–18178. doi:10.1109/ACCESS.2017.2717930.
  4. ^ Cloud, Alibaba (2018-01-04). "Kafka vs. RocketMQ- Multiple Topic Stress Test Results". Medium. Retrieved 2018-07-08.
  5. ^ Yue, Ma; Ruiyang, Yan; Jianwei, Sun; Kaifeng, Yao (2017). "A MQTT Protocol Message Push Server Based on RocketMQ". 2017 10th International Conference on Intelligent Computation Technology and Automation (ICICTA). pp. 295–298. doi:10.1109/ICICTA.2017.72. ISBN 978-1-5386-1230-9.
  6. ^ "The OpenMessaging Benchmark Framework". openmessaging.cloud. Retrieved 2018-07-08.

외부 링크