ActiveMQ Classic 如何与 Mule 相比
常见问题 > 一般 > ActiveMQ Classic 如何与 Mule 相比
Apache ActiveMQ Classic 是一个消息传递提供者,具有广泛的消息代理功能。Mule 被描述为 ESB,因为它定义和执行集成软件组件之间消息交换的代理。
架构
Mule 提供了一个易于访问的集成编程模型,旨在与其他中间件技术良好协作并利用这些技术。因此,Mule 不提供本机消息传递系统,因此经常与 Apache ActiveMQ Classic 一起使用。
如果您使用 Mule 定义基于 Apache ActiveMQ Classic 的集成,您将使用一个独立的框架(Mule 组件模型)来定义连接接口,以及中介活动,如转换和异常处理。(注意,Mule 框架模型假设 SEDA 进程模型。)以这种方式使用,您可以将 Mule 视为一个用于定义组件之间交互的库,其优点是它与集成组件和消息传递基础设施都是松散耦合的。
如果您已选择使用 Apache ActiveMQ Classic 进行消息传递,并且不需要与消息传递基础设施的这种松散耦合,您也可以直接或通过 Apache Camel 容器 配置 ActiveMQ Classic。这可能让您访问 Mule 框架中未定义的消息处理功能,同时仍通过 ActiveMQ Classic 的众多客户端连接选项提供与非 JMS 客户端的连接。直接使用 ActiveMQ Classic 还允许您利用集群和故障转移功能,这些功能超出了 Mule 组件模型的范围。
共同点
Mule 框架非常用户友好,基于 Java(Mule 组件,称为通用模型对象,本质上是 POJO),并且灵活(部署到几乎任何 Java 环境)和轻量级(可以部署在 Spring 中)。这些是它与 ActiveMQ Classic 共享的优势,因此,在 Apache Camel 出现之前,这两种技术经常一起使用并不奇怪。
“ESB” 与“消息传递”
Mule 支持许多超出消息传递范围的集成功能,例如基于 BPEL 的编排和(SOAP 到 Java)Web 服务支持。这些被正确地描述为 ESB 功能,因为它们不仅仅是人们对消息传递平台的期望。对于具有这些要求的环境,Camel 或 Mule 为 ActiveMQ Classic 的功能提供了一个很好的扩展。
其他 ESB 需求,例如对分布式架构的支持以及本机 JBI 容器和组件,不受 Mule 支持。如果您需要这些功能,我们建议您调查其他也集成 Apache ActiveMQ Classic 的开源 ESB,例如 Apache ServiceMix,甚至 Apache CXF 服务框架。
商业支持、版权和许可证
Mule 和 ActiveMQ Classic 都有致力于这些技术的公司提供的商业支持。ActiveMQ Classic 的商业支持选项在 此处 列出。