Java Messaging : ActiveMQ、Mule、ServiceMix 和 Camel 之间的区别

我是消息传递的新手,想知道 、 和 之间的区别ActiveMQMuleServiceMixCamel

有谁知道这些产品中的每一个是如何不同的?

提前致谢!

编辑:也想知道任何好的地方/资源来学习这些东西。


答案 1

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实现。骆驼确实有大量不同的组件,尽管它们使用各种不同的技术。


答案 2

首先,让我们定义

JMS一个 Java Messaging Service 协议规范。
ESBEnterprise Service Bus。
JBIJava Business Integration.

现在我们可以详细回答:

Apache ActiveMQ是上述JMSJava Messaging Service)的实现。

Apache Camel是一个实现企业集成模式的消息路由引擎。
它提供了许多预定义的组件。
它的关键组件之一支持JMSJava Messaging Service)。

Apache ServiceMix是上述ESBEnterprise Service Bus)
的实现,与JBIJava Business Integration)规范兼容。
它还提供了许多Camel中不可用的基础架构功能(例如OSGI捆绑包支持服务)。
SM大量使用骆驼。

MuleESBEnterprise Service Bus)的另一种实现,但与Camel/ServiceMix系列无关。


推荐