Java消息传递:ActiveMQ、Mule、ServiceMix和Camel之间的区别

59

我是新手,想知道ActiveMQMuleServiceMixCamel之间的区别。

有人知道这些产品之间的区别吗?

先感谢一下!

编辑:也想知道学习这些知识的好地方/资源。

6个回答

81
ActiveMQ是一种消息代理,实现了JMS API并支持多种跨语言客户端和网络协议。它允许您实现队列或主题,并编写侦听器或订阅者以响应队列事件。
Mule和ServiceMix是开源ESB(企业服务总线)。 ESB拥有超出JMS的功能:排队是关键,但转换,路由,日志记录,安全性等也很重要。 Apache CamelEnterprise Integration Patterns模式的实现。它可以使用JMS和其他组件来实现该书中的想法。
JMS是其他技术的基础,就像JDBC是Hibernate,iBatis等的基础一样。
JMS是Java API和规范和TCK(Java EE的一部分)。 ActiveMQ是其特定的实现。
Camel可以使用ActiveMQ(Camel包含在ActiveMQ代理中,因此您可以轻松地将JMS路由到和从Camel支持的其他组件中)。
Camel不直接使用Mule或ServiceMix;尽管ServiceMix将Camel用作其首选路由引擎和EIP实现。 Camel确实有大量不同的组件,可以使用各种不同的技术。

Apache Camel使用ActiveMQ、Mule和ServiceMix来实现这些模式吗?还是使用原始的JMS? - peakit
1
Camel可以支持任何JMS提供商;它在语法上使用ActiveMQ有快捷方式,但同样可以很好地使用任何其他JMS队列。 - matt b

55

首先,让我们定义一下:

JMS是Java Messaging Service协议规范。

ESB是企业服务总线。

JBI是Java Business Integration。

现在,我们可以详细回答问题:

Apache ActiveMQ是上述Java Messaging Service(JMS)的实现。

Apache Camel是一个实现了企业集成模式的消息路由引擎。它提供了许多预定义组件,其中一个主要组件支持Java Messaging Service(JMS)。

Apache ServiceMix是上述企业服务总线(ESB)的实现,兼容Java Business Integration(JBI)规范。它还提供了许多Camel中不可用的基础设施功能(如服务OSGI捆绑支持)。ServiceMix大量使用了Camel。

Mule是另一种ESB(企业服务总线)的实现,但与Camel / ServiceMix系列无关。


2

Apache Service Mix :: 它是一个ESB(企业服务总线),JBI容器和集成平台。

Apache Camel: 智能路由和中介引擎,实现了EIP(企业集成模式)。

Apache ActiveMQ: 它是一个实现JMS的消息代理。


2

Mule是一种企业服务总线,提供端到端的集成解决方案。

ActiveMQ是用于在订阅者和接收者之间排队消息的消息代理。

ServiceMix也是一种ESB,即企业服务总线。


2

Camel可以让您使用多种领域特定语言定义路由和中介规则。 Mule和ServiceMix是ESB。 ActiveMQ是消息服务。


0

Apache Camel 是 EIP(企业集成模式)的实现。

ServiceMix 是符合 SOA 环境中 ESB 原则的产品。

Active MQ 和其他 JMS API 的实现一样出色。

Mule 也是一个 ESB。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接