Java Messaging : ActiveMQ、Mule、ServiceMix 和 Camel 之间的区别
我是消息传递的新手,想知道 、 和 之间的区别ActiveMQ
Mule
ServiceMix
Camel
有谁知道这些产品中的每一个是如何不同的?
提前致谢!
编辑:也想知道任何好的地方/资源来学习这些东西。
我是消息传递的新手,想知道 、 和 之间的区别ActiveMQ
Mule
ServiceMix
Camel
有谁知道这些产品中的每一个是如何不同的?
提前致谢!
编辑:也想知道任何好的地方/资源来学习这些东西。
ActiveMQ 是一个消息代理,它实现了 JMS API 并支持许多跨语言客户端和网络协议。它允许您实现队列或主题,并编写侦听器或订阅者来响应队列事件。
Mule和ServiceMix是开源的ESB(企业服务总线)。ESB 具有超越 JMS 的功能:队列是关键,但转换、路由、日志记录、安全性等也是如此。
Apache Camel是企业集成模式中模式的实现。它可以使用JMS和其他组件将这本书中的想法落实到位。
JMS是其他技术的基础,比如JDBC是Hibernate,iBatis等的基础。
JMS是一个Java API,一个规范和TCK(Java EE的一部分)。ActiveMQ是它的一个特殊实现。
Camel 可以使用 ActiveMQ(并且 Camel 捆绑在 ActiveMQ 代理中,因此您可以轻松地将 JMS 路由到 Camel 支持的其他组件。
Camel不直接使用Mule或ServiceMix;尽管ServiceMix使用Camel作为其首选的路由引擎和EIP实现。骆驼确实有大量不同的组件,尽管它们使用各种不同的技术。
首先,让我们定义
JMS 是一个 Java Messaging Service 协议规范。
ESB 是 Enterprise Service Bus。
JBI 是 Java Business Integration.
现在我们可以详细回答:
Apache ActiveMQ是上述JMS(Java Messaging Service)的实现。
Apache Camel是一个实现企业集成模式的消息路由引擎。
它提供了许多预定义的组件。
它的关键组件之一支持JMS(Java Messaging Service)。
Apache ServiceMix是上述ESB(Enterprise Service Bus)
的实现,与JBI(Java Business Integration)规范兼容。
它还提供了许多Camel中不可用的基础架构功能(例如OSGI捆绑包支持服务)。
SM大量使用骆驼。
Mule是ESB(Enterprise Service Bus)的另一种实现,但与Camel/ServiceMix系列无关。