2010-07-19 2 views
38

RabbitMQ와 Mule의 차이점은 무엇입니까? 메시지 지향 아키텍처를 사용하는 응용 프로그램을 만들려고합니다. AMQP (RabbitMQ)는 내가 원하는 모든 것을 제공하지만 많은 관련 기술 선택 및 이와 유사한 개념에 난처합니다. ESB처럼. 나는 다른 대안을 고려하지 않고 선택을하고 있는지 의심 스럽다.RabbitMQ와 Mule의 비교 방법

나는 RabbitMQ가 메시지 브로커이며 프로듀서와 소비자 (모든 양식 또는 구독 게시자) 간의 메시지 조정에 도움이되며 트위터 또는 Facebook 업데이트와 같은 실제 사례에서 어떻게 사용되는지 이해할 수 있음을 분명히합니다.

뮬 (mule)이란 무엇인가요? 뮬을 사용하여 RabbitMQ에서 무엇을 할 수 있습니까? RabbitMQ와 유사한 뮬을 사용해야합니까?

mule은 메시지 브로커와 다른 목표가 있습니까?

은 노새를 기초 것은 (내가 쉽게 RabbitMQ에서 리스너를 작성할 수)

완전한 자바 기반 시스템 (내가 한 현재의 실험을 노새가 적절한 노새 청취자에게 메시지를 전달하는 메시지 브로커가 있다고 가정합니까 RabbitMQ를 사용하면 클라이언트를 C# 및 서버로 Java와 함께 간단한 RPC 클라이언트 서버를 작성하는 데 30 분이 채 걸리지 않았습니다. 이러한 작업은 Mule에서 쉽게 수행됩니다.

답변

64

ESB (엔터프라이즈 서비스 버스)입니다. RabbitMQ는 메시지 브로커입니다.

ESB은 라우팅, 변환 및 비즈니스 프로세스 관리와 같이 메시지 브로커의 상단에 레이어를 추가합니다. 웹 서비스, REST 엔드 포인트, 데이터베이스 연결, 전자 메일 및 FTP 서버를 통합하는 응용 프로그램 간의 조정자입니다. 다른 프로토콜을 사용하는 응용 프로그램 네트워크 내에서 상호 운용성을 조율하는 고수준 통합 백본입니다.

메시지 브로커은 개발자가 게시자와 구독자간에 원시 메시지를 릴레이 할 수있게 해주는 하위 수준의 구성 요소입니다. 일반적으로 동일한 시스템의 구성 요소 간에는 항상 그렇지는 않습니다. 비동기 처리를 사용하여 응답 시간을 낮게 유지하는 데 사용됩니다. 일부 작업은 처리하는 데 시간이 오래 걸리며 시간에 민감하지 않은 경우 작업을 보관하지 않으려 고합니다. 대신 메시지를 대기열 (게시자)에 게시하고 구독자가 가져 와서 나중에 처리하도록합니다.

+1

이 메시지 브로커 꽤 웹 중심이다 - 아이디어는 웹 페이지가 반환해야하지만 일부 작업은 더 이상 사용자가 대기하는 것보다 걸릴 수 있습니다 -하지만 메시지 브로커는 이것보다 응용 프로그램을 훨씬 더 다양한 있습니다. – Dunk

6

Mule은 메시지 브로커로 구현 된 "상위 레벨"서비스입니다. docs

에서 ESB의 메시징 백본 은 일반적으로 JMS를 사용하여 구현하지만, 어떤 다른 메시지 서버 구현 당신은 토끼와 함께 ESB를 구축 할 수

을 사용할 수 있습니다; 그러나 byte [] 패키지를 보내는 것으로 제한 될 것이므로 주제와 대기열과 같은 메시징 기본 요소로 시스템을 구축해야합니다. 번역의 레이어가 적기 때문에 벤치마킹, 테스트 또는 데이터를 기반으로 한 비트가 더 빠를 수도 있습니다. Mule은 이에 대한 추상화를 제공하고 다양한 전송을 담당하며 라우팅 논리를 처리 할 수 ​​있습니다.

0

Mule은 Rabbit이 구독자와 수신자 간의 메시지 대기열을위한 메시지 브로커 인 엔드 투 엔드 통합 솔루션을 제공하는 엔터프라이즈 서비스 버스입니다.

+0

헨릭이 제공하는 답변이 중복되었습니다. – dutchRooster

1

RabbitMQ는 오픈 소스 메시지 브로커 소프트웨어는 얼랑 프로그래밍 언어로 작성되며, 클러스터링 및 페일 오버 열기 텔레콤 플랫폼에 내장되어 있습니다. 사용하기 쉽고 많은 수의 개발자 플랫폼을 지원하며 모든 주요 운영 체제에서 실행됩니다. 그것은 Exchange라는 개념에서 작동합니다. Mule은 RabbitMQ와 AMQP 커넥터를 연결합니다.