3

我在一个项目中担任软件工程师,该项目使用 ActiveMQ 和 Mule for Java 消息传递服务。但我有一个问题:既然 ActiveMQ 将所有消息传输到一个队列到另一个队列,为什么需要 Mule?

4

1 回答 1

7

来自 Mule 文档

上图来自官方Mule 3 用户手册

以下是一个非常简单的概述,可让您大致了解。在不了解您的应用程序的具体细节的情况下,很难说出一切是如何协同工作的。

Mule 不是消息代理,它是服务总线;它提供集成和通信服务。在基本形式中,它可以充当消息代理,但这只是任何集成层的副作用。

mule 的真正强大之处在于跨不同应用程序、系统和服务的各种集成点。提供安全、报告等。

ActiveMQ 只是一个消息代理——整个工作就是有效地提供一个消息总线。Mule 接受不同的请求,转换/翻译它们,记录它们,然后可以将它们作为其定义流的一部分发布到 ActiveMQ。

也可能是 ActiveMQ 充当稍后需要通过 Mule 处理的消息的队列(如上图所示)。

Mule 可以使用 ActiveMQ 作为消息源和目标。以这种方式使用 MQ 可以保证消息将被处理并且不会丢失。

于 2013-01-08T05:25:27.427 回答