49

RabbitMQ 与 Mule 相比如何,我将使用面向消息的架构构建应用程序,AMQP (RabbitMQ) 提供了我想要的一切,但我对如此多的相关技术选择和类似 ESB 的概念感到困惑。我怀疑我是否在不考虑其他选择的情况下做出选择。

我很清楚 RabbitMQ 是一个消息代理,它帮助我在生产者和消费者之间调解消息(所有形式或发布订阅,我可以从 twitter 或 Facebook 更新等真实示例中了解它是如何使用的)

什么是骡子,如果我可以使用骡子实现我在 RabbitMQ 中所做的事情,我应该考虑骡子类似于 RabbitMQ 吗?

mule 的目标与消息代理的目标不同吗?

mule 是否假设它的底层有一个消息代理将消息传递给适当的 mule 侦听器(我可以很容易地在 RabbitMQ 中编写一个侦听器)

mule 是一个完整的 Java 基础系统吗(我用 RabbitMQ 做的当前实验花了我不到 30 分钟的时间来编写一个简单的 RPC 客户端服务器,客户端为 C#,服务器为 Java,在 Mule 中可以轻松完成这些事情)。

4

4 回答 4

80

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

ESB在消息代理之上提供附加层,例如路由、转换和业务流程管理。它是应用程序之间的中介,集成了 Web 服务、REST 端点、数据库连接、电子邮件和 ftp 服务器——你可以说它。它是一个高级集成主干,可在使用不同协议的应用程序网络中协调互操作性。

消息代理是一个较低级别的组件,它使您作为开发人员能够在发布者和订阅者之间中继原始消息,通常在同一系统的组件之间但并非总是如此。它用于启用异步处理以保持较低的响应时间。有些任务需要更长的时间来处理,如果它们对时间不敏感,你不希望它们拖延。相反,将消息发布到队列(作为发布者)并让订阅者选择它并“稍后”处理它。

于 2010-07-27T17:56:01.293 回答
7

Mule 是使用消息代理实现的“更高级别”服务。从文档

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

你可以用rabbit构建一个ESB;但是,您将仅限于发送 byte[] 包,并且您必须使用主题和队列等消息传递原语构建系统。它可能会更快一些(基于绝对没有基准测试、测试或数据),因为翻译层更少。Mule 在此之上提供了一个抽象,讲各种传输,并且可以处理一些路由逻辑。

于 2010-07-27T14:40:12.333 回答
0

Mule 是一种企业服务总线,提供端到端集成解决方案,而 Rabbit 是消息代理,用于在订阅者和接收者之间对消息进行排队。

于 2016-05-19T17:24:19.640 回答
0

RabbitMQ, a open source message broker software is written in Erlang programming language and is built on Open Telecom Platform for clustering and failover. It is easy to use, supports a huge number of developer platforms and runs on all major operating systems. It works on a concept called Exchange. Mule connects RabbitMQ with AMQP connector.

于 2017-08-22T10:45:58.607 回答