RabbitMQ与Mule相比如何?

RabbitMQ如何与Mule进行比较,我将使用面向消息的体系结构构build一个应用程序,而AMQP(RabbitMQ)则提供了我想要的所有东西,但是我对如此多的相关技术select以及类似的ESB概念感到困惑。 如果我不考虑其他select而做出select,我有疑问。

我大多清楚,RabbitMQ是一个消息代理,它可以帮助我调解生产者和消费者之间的消息(所有表单或发布订阅,我可以理解它是如何使用像twitter或Facebook更新等实际的例子)

什么是mule,如果我能用mule子来实现我在RabbitMQ上做的事情,我该认为mule子与RabbitMQ相似吗?

mule子有一个不同于消息经纪人的目标吗?

mule是否假定它有一个消息代理将消息传递给适当的mule监听器(我可以在RabbitMQ中轻松地编写监听器)

mule是一个完整的Java基础系统(目前我用RabbitMQ做的实验花了我不到30分钟,写一个简单的RPC客户端服务器,客户端为C#和服务器为Java,这样的事情会在mule轻松地完成)。

Mule是一个ESB(企业服务总线)。 RabbitMQ是一个消息中介。

ESB提供消息代理的顶层,如路由,转换和业务stream程pipe理。 它是应用程序之间的中介,集成了Web服务,REST端点,数据库连接,电子邮件和FTP服务器 – 您可以将其命名。 它是一个高层次的集成骨干networking,在说不同协议的应用networking中协调互操作性。

消息代理是一个较低级别的组件,它使您可以作为开发者在发布者和订阅者之间(通常是在同一个系统的组件之间,但并不总是)之间转发原始消息。 它用于启用asynchronous处理来保持低响应时间。 有些任务需要更长的时间来处理,如果不是时间敏感的,你不希望他们把事情做好。 相反,将消息发布到队列(作为发布者)并让用户select并稍后处理它。

mule是一个与消息代理实施的“更高级别”的服务。 从文档

ESB的消息传递主干通常使用JMS来实现,但是可以使用任何其他消息服务器实现

你可以用兔子build立一个ESB; 然而,你将被限制发送byte []包,你将不得不使用主题和队列等消息传递原语来构build你的系统。 它可能会更快一些(基于绝对没有基准testing,testing或数据),因为翻译层数较less。 Mule提供了一个抽象,讲述了各种各样的传输,并且可以处理一些路由逻辑。

Mule是一种提供端到端集成解决scheme的企业服务总线,其中Rabbit是用于在订户和接收方之间排队消息的消息代理。

RabbitMQ是一个开源的消息代理软件,采用Erlang编程语言编写,build立在Open Telecom Platform上,用于集群和故障转移。 它易于使用,支持大量的开发人员平台,并可在所有主要操作系统上运行。 它在一个叫做Exchange的概念上工作。 Mule连接RabbitMQ和AMQP连接器。