我在一个使用ActiveMQ和Mule for Java Messaging Service的项目上担任软件工程师。但我有一个问题:由于ActiveMQ将所有消息传输到一个队列到另一个队列,为什么需要Mule?
答案 0 :(得分:7)
上图来自官方Mule 3 User Manual
以下是一个非常简单的概述,为您提供一般概念。如果不知道有关您的应用程序的细节,很难说明一切如何协同工作。
Mule不是消息代理,它是服务总线;它提供集成和通信服务。在基本形式中,可以像消息代理一样,但这只是任何集成层的副作用。
mule的真正力量是跨不同应用程序,系统和服务的各种集成点;提供安全,报告等。
ActiveMQ只是一个消息代理 - 整个工作就是有效地提供消息传递总线。 Mule接受不同的请求,转换/翻译它们,记录它们,然后可以将它们作为其定义流程的一部分发布到ActiveMQ上。
也可能是ActiveMQ充当了后来需要通过Mule处理的消息的队列(如上图所示)。
Mule可以使用ActiveMQ作为消息源和目标。以这种方式使用MQ可以保证消息将被处理而且不会丢失任何消息。