RocketMQ 원리 및 소스 코드 분석

RocketMQ 원칙 깊이 :

첫째, 정의 :

RocketMQ는 분산 메시징 미들웨어 큐 모델은 다음과 같은 구성 요소가 있습니다 :

1 네임 : 거의 노드의 상태 정보 사이에 동기가 클러스터가 배치 될 수 있고, 노드

2 브로커는 : 이다 RocketMQ의 경량 통해 핵심 부품 항목 메시지 저장소 및 큐 메커니즘을 유지하기 위해 브로커는 메시지 지원 푸시 당겨 모드. 지원 천억 수준 메시지 축적 용량

3 프로듀서 : 메시지 생성자 및 네임 서버 통신 획득 항목 노선 정보 및 네임 서버는 긴 연결 및 유지 생산자와 관련된 모든 브로커를 오랫동안 연결을 유지

4, 소비자 : 소비자, 단일 소비자 네임 서버 긴 연결, 폴링 지주 주제 에 따라 구성 정보를 주제 경로와 브로커는 긴 연결을 유지하기

두, 브로커 클러스터 접근 방식

1, 단일 마스터 모드 :이 방법은 위험, 일단 브로커 다시 시작하거나 다운 타임은 전체 서비스가 발생합니다 온라인 환경을 사용하지 않는 것이 좋습니다 사용할 수 없습니다.

2, 멀티 마스터 모드 : 없이 클러스터 슬레이브 모든 마스터 , 예를 들면 3 번째의 마스터

   장점 : 간단한 구성, 하나의 마스터 다운하거나 응용 프로그램을 다시 시작하는 것은 디스크로 구성된 유지 보수에 영향이없는 RAID10의 도에 의한 시스템 다운 타임 복구 할 수없는 상황, 경우, 시간을 RAID10 누락 된 디스크 매우 신뢰할 수있는 메시지가 손실되지 않습니다 (비동기 브러쉬 디스크 메시지의 적은 수의, 브러시 판) 동기화를 잃지 않는다. 가장 높은 성능을 제공합니다.

   단점 : 하나의 기계가 다운되는 동안 메시지가 컴퓨터를 복원 등록 할 수 없습니다 전에 기계가 소비되지 않은, 실시간 메시지가 영향을받습니다.

3, 멀티 마스터 멀티 슬레이브 모드, 비동기 복제

마스터 배치 슬레이브 상기 복수의 마스터 - 슬레이브 , 은 HA 비동기 복제 모드 밀리 메인 지연 짧은 메시지.

   장점은 : 디스크가 손상된 경우에도 때문에, 메시지는 아주 작은 손실, 실시간 메시지는 영향을받지 않습니다 마스터 중단 한 후, 소비자들이 여전히에서 사용할 수있는 슬레이브 소비,이 프로세스는 응용 프로그램에 투명합니다. 인간의 개입없이. 멀티 성능 마스터는 거의 같은 패턴이다.

   단점 : 마스터 다운 타임, 디스크 손상은, 적은 양의 정보를 잃었다.

(4) 다중 마스터 다중 슬레이브 동기 듀얼 라이트

마스터 배치 슬레이브 상기 복수의 마스터 - 슬레이브 , 은 HA 동기 이중 기록 대기 모드로 성공적 성공 애플리케이션으로 리턴 물품.

   장점 : 데이터 서비스는 단일 지점이없는, 마스터 , 지체없이 메시지를 내려, 서비스 가용성 및 데이터 가용성이 매우 높습니다

   단점 : 낮은에 대한 비동기 복제 모드보다 약간 낮은 성능, 10 % 정도는 단일 메시지를 보내 RT 약간 높은. 차 전류가 중지되면, 백업 시스템은 자동으로 다음의 자동 스위칭 기능을 지원하는 호스트로 전환되지 않는다.

 

세, RocketMQ의 차트 :

사진 참조 :

 

네, RocketMQ의 소스 코드 분석 :

1, MQ의 모듈 :

 

 

Rocketmq-namesrv:对应NameServer服务实例,一些事时序图:

 

 

추천

출처www.cnblogs.com/junxing/p/10993993.html