>일반적인 문제 >Rabbitmq와 kafka의 차이점

Rabbitmq와 kafka의 차이점

(*-*)浩
(*-*)浩원래의
2020-01-09 11:41:098716검색

Rabbitmq와 kafka의 차이점

응용 시나리오 측면에서                                         🎜🎜#phpstorm)

RabbitMQ는 AMQP를 따릅니다. 프로토콜이며 본질적으로 동시성이 높은 erlanng 언어로 개발되었으며 상대적으로 높은 신뢰성이 요구되는 실시간 메시징에 사용됩니다.

kafka는 2010년 12월에 출시된 Linkedin의 오픈소스 메시지 게시 및 구독 시스템입니다. 주로 활성 스트리밍 데이터 처리 및 대용량 데이터 처리에 사용됩니다.

1) 아키텍처 모델 측면에서

RabbitMQ는 AMQP 프로토콜을 따르며, 그 중 Exchange, Binding, Queue로 구성됩니다. 교환 및 바인딩 메시지의 라우팅 키를 구성합니다.

클라이언트 생산자는 채널을 연결하여 서버와 통신하고 소비자는 소비를 위해 대기열에서 메시지를 얻습니다. 메시지는 소비자 측으로 푸시되고 소비자는 입력 스트림에서 루프를 반복하여 데이터를 읽습니다. RabbitMQ는 브로커 중심이며 메시지 확인 메커니즘을 가지고 있습니다.

kafka는 소비자를 중심으로 일반적인 MQ 구조인 생산자, 브로커, 소비자를 따릅니다. 메시지의 소비 정보는 클라이언트 소비자에 저장됩니다. 소비 포인트에 따라 메시지 확인 메커니즘이 없습니다.

2) 처리량 측면에서

kafka는 내부적으로 메시지 일괄 처리, 제로 복사 메커니즘, 데이터 저장 및 검색을 사용하여 처리량이 높습니다. O(1) 복잡성을 갖는 로컬 디스크 순차 배치 작업이며 메시지 처리가 매우 효율적입니다.

rabbitMQ는 처리량 측면에서 kafka보다 약간 열등합니다. RabbitMQ는 안정적인 메시지 전달을 지원하고, 트랜잭션을 지원하며, 스토리지 안정성 요구 사항에 따라 배치 작업을 지원하지 않습니다. 메모리나 하드 디스크를 사용하십시오.

3) 가용성 측면에서

rabbitMQ는 미러 큐를 지원합니다.

kafka의 브로커는 활성 및 대기 모드를 지원합니다.

4) 클러스터 로드 밸런싱 측면에서

kafka는 Zookeeper를 사용하여 클러스터 내 브로커와 소비자를 관리하며, 토픽을 등록할 수 있습니다. on Zookeeper ;

주키퍼의 조정 메커니즘을 통해 생산자는 주제에 해당하는 브로커 정보를 저장하며 이는 무작위로 또는 설문 조사를 통해 브로커에게 보낼 수 있습니다. 그리고 생산자는 의미론에 따라 샤드를 지정할 수 있으며, 메시지는 브로커의 특정 샤드로 전송됩니다.

rabbitMQ의 로드 밸런싱에는 지원을 위한 별도의 로드 밸런서가 필요합니다.

위 내용은 Rabbitmq와 kafka의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.