jms esb rabbitmq mule eai

jms - ¿Cómo se compara RabbitMQ con Mule?



esb eai (4)

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

Un ESB proporciona capas adicionales encima de un intermediario de mensajes, como enrutamiento, transformaciones y administració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.

Un intermediario de mensajes 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".

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

Estoy más que claro que RabbitMQ es un intermediario de mensajes y me ayuda a mediar mensajes entre productor y consumidor (todas las formas o publicaciones se suscriben y podría entender cómo se usa a partir de ejemplos reales como Twitter o actualizaciones de Facebook, etc.)

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

¿Mule tiene un objetivo diferente al de un intermediario de mensajes?

¿Asume mula que detrás de él hay un intermediario de mensajes que envía mensajes a los oyentes apropiados (podría escribir fácilmente un oyente en RabbitMQ)?

Es mula un sistema completo de bases de Java (el experimento actual 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).


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


Mule es un servicio de "nivel superior" implementado con Message Broker. De los docs

La red troncal de mensajería del ESB generalmente se implementa utilizando JMS, pero cualquier otra implementación del servidor de mensajes podría ser utilizada

Puedes 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.


RabbitMQ, un software de mensajería de código abierto está escrito en el lenguaje de programación Erlang y está construido 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.