2010-07-19 27 views
38

¿Cómo se compara RabbitMQ con Mule, voy a construir una aplicación usando arquitectura orientada a mensajes y AMQP (RabbitMQ) proporciona todo lo que quiero, pero estoy perplejo con tanta elección de tecnología relacionada y conceptos similares como ESB. Tengo una duda si estoy haciendo una elección sin considerar otras alternativas.¿Cómo se compara RabbitMQ con Mule?

Tengo claro que RabbitMQ es un intermediario de mensajes y me ayuda a mediar mensajes entre el productor y el consumidor (todas las formas o publicar suscribirse y podría entender cómo se usa de ejemplos reales como Twitter o actualizaciones de Facebook, etc.)

¿Qué es Mule, si pudiera lograr lo que hago en RabbitMQ usando mulas, debería considerar una mula similar a RabbitMQ?

¿El mulo tiene un objetivo diferente al de un intermediario de mensajes?

¿El mula asume que por debajo de ella hay un intermediario de mensajes que entrega el mensaje a los oyentes de mulas apropiadas (que fácilmente podría escribir un oyente en RabbitMQ)

Es mula un sistema de bases de Java completa (El actual experimento que hice con RabbitMQ me llevó menos de 30 minutos escribir un servidor de cliente RPC simple con el cliente como C# y el servidor como Java, tales cosas se harán fácilmente en Mule).

Respuesta

64

Mule es un ESB (Enterprise Service Bus). RabbitMQ es un intermediario de mensajes.

ESB proporciona capas adicionales encima de un intermediario de mensajes como enrutamiento, transformaciones y gestión de procesos comerciales. Es un mediador entre aplicaciones, integración de servicios web, puntos finales REST, conexiones de bases de datos, servidores de correo electrónico y ftp, lo que sea. Es una red troncal de integración de alto nivel que orquesta la interoperabilidad dentro de una red de aplicaciones que hablan diferentes protocolos. message broker es un componente de nivel inferior que le permite, como desarrollador, retransmitir mensajes sin formato entre editores y suscriptores, generalmente entre componentes del mismo sistema, pero no siempre. Se utiliza para habilitar el procesamiento asincrónico para mantener bajos los tiempos de respuesta. Algunas tareas tardan más en procesarse y no quiere que mantengan las cosas en orden si no son sensibles al tiempo. En su lugar, publique un mensaje en una cola (como editor) y pida a un suscriptor que lo recoja y lo procese "más adelante".

+1

Esta es una vista bastante céntrica de un intermediario de mensajes, la idea que la página web debe devolver, pero algunas tareas pueden tardar más de lo que el usuario querría esperar, pero los intermediarios de mensajes tienen una variedad de aplicaciones mucho más amplia que esta. – Dunk

6

Mule es un servicio de "nivel superior" implementado con Message Broker. Desde el docs

La red troncal de mensajería de la ESB es implementa normalmente utilizando JMS, pero cualquier otra aplicación servidor de mensajes podrían utilizarse

Se puede construir un ESB con conejo; sin embargo, estará limitado a enviar paquetes de bytes [], y tendrá que construir su sistema a partir de primitivas de mensajería como temas y colas. Puede ser un poco más rápido (basado en absolutamente ningún benchmarking, prueba o datos) porque hay menos capas de traducción. Mule proporciona una abstracción además de esto, habla una variedad de transportes y puede manejar cierta lógica de enrutamiento.

0

Mule es un bus de servicio empresarial que proporciona una solución de integración de extremo a extremo donde Rabbit es intermediario de mensajes para poner en cola mensajes entre el suscriptor y el receptor.

+0

Duplicado de la respuesta proporcionada por Henrik – dutchRooster

1

RabbitMQ, un software de mensajero de código abierto está escrito en el lenguaje de programación Erlang y se basa en Open Telecom Platform para clustering y failover. Es fácil de usar, es compatible con una gran cantidad de plataformas de desarrollo y se ejecuta en todos los principales sistemas operativos. Funciona en un concepto llamado Exchange. Mule conecta RabbitMQ con el conector AMQP.

Cuestiones relacionadas