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

问题描述 投票:50回答:6

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

任何人都知道这些产品是如何不同的?

提前致谢 !

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

java apache-camel activemq messaging apache-servicemix
6个回答
75
投票

ActiveMQ是一个消息代理,它实现了JMS API并支持number of cross language clients and network protocols。它允许您实现队列或主题,并编写侦听器或订阅者以响应队列事件。

Mule和ServiceMix是开源ESB(企业服务总线)。 ESB具有超越JMS的功能:排队是关键,但转换,路由,日志记录,安全性等也是关键。

Apache CamelEnterprise Integration Patterns模式的实现。它可以使用JMS和其他components将该书中的想法付诸实施。

JMS是其他技术的基础,例如JDBC是Hibernate,iBatis等的基础。

JMS是Java API和规范以及TCK(Java EE的一部分)。 ActiveMQ是它的特定实现。

Camel可以使用ActiveMQ(并且Camel捆绑在ActiveMQ代理中,因此您可以轻松地路由到JMS以及从Camel支持的其他组件)。

Camel不直接使用Mule或ServiceMix;虽然ServiceMix使用Camel作为其首选路由引擎和EIP实现。 Camel确实有一个ton of different components虽然使用各种不同的技术。


54
投票

首先让我们来定义

JMS是Java Messaging Service协议规范。 ESB是企业服务总线。 JBI是Java Business Integration。

现在我们可以详细回答:

Apache ActiveMQ是上述JMS(Java消息传递服务)的实现。

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

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

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


1
投票

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

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

Apache ActiveMQ:它是一个实现JMS的Message Broker。


1
投票

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

ActiveMQ是用于在订户和接收器之间对消息进行排队的消息代理。

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


1
投票

Camel使您能够以各种特定于域的语言定义路由和调解规则。 Mule和SeriviceMix是ESB。 ActiveMQ是消息传递服务。


0
投票

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

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

Active MQ与JMS API的任何其他实现一样好

骡子也是ESB

© www.soinside.com 2019 - 2024. All rights reserved.