Java 消息传递:ActiveMQ、Mule、ServiceMix 和 Camel 之间的区别
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/2705043/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Java Messaging : Difference between ActiveMQ, Mule, ServiceMix and Camel
提问by peakit
I am new to Messaging and want to know the difference between ActiveMQ
, Mule
, ServiceMix
and Camel
我是新来的消息,想知道的区别ActiveMQ
,Mule
,ServiceMix
和Camel
Anyone knows how each of these product is different?
有谁知道这些产品有什么不同?
Thanks in advance !
提前致谢 !
EDIT:Also would like to know any good place/resource to learn these things.
编辑:也想知道任何学习这些东西的好地方/资源。
采纳答案by duffymo
ActiveMQ is a message broker which implements the JMS API and supports a number of cross language clients and network protocols. It lets you implement queues or topics and write listeners or subscribers to respond to queue events.
ActiveMQ 是一个消息代理,它实现了 JMS API 并支持许多跨语言客户端和网络协议。它允许您实现队列或主题并编写侦听器或订阅者来响应队列事件。
Mule and ServiceMix are open source ESB (enterprise service bus). An ESB has capabilities beyond JMS: queuing is key, but so are transformation, routing, logging, security, etc.
Mule 和 ServiceMix 是开源 ESB(企业服务总线)。ESB 具有 JMS 之外的功能:排队是关键,但转换、路由、日志记录、安全性等也是关键。
Apache Camelis an implementation of the patterns in Enterprise Integration Patterns. It can use JMS and other componentsto put the ideas from that book into place.
Apache Camel是企业集成模式中模式的一个实现。它可以使用 JMS 和其他组件将书中的想法落实到位。
JMS is fundamental to the other technologies, like JDBC is the foundation for Hibernate, iBatis, etc.
JMS 是其他技术的基础,如 JDBC 是 Hibernate、iBatis 等的基础。
JMS is a Java API and a specification and TCK (part of Java EE). ActiveMQ is a particular implementation of it.
JMS 是 Java API 和规范和 TCK(Java EE 的一部分)。ActiveMQ 是它的一个特殊实现。
Camel can use ActiveMQ (and Camel is bundled inside the ActiveMQ broker so you can easily route to and from JMS to the other components Camel supports).
Camel 可以使用 ActiveMQ(并且 Camel 捆绑在 ActiveMQ 代理中,因此您可以轻松地在 JMS 和 Camel 支持的其他组件之间进行路由和路由)。
Camel doesn't use Mule or ServiceMix directly; though ServiceMix uses Camel as its preferred routing engine and EIP implementation. Camel does have a ton of different componentsthough that use various different technologies.
Camel 不直接使用 Mule 或 ServiceMix;尽管 ServiceMix 使用 Camel 作为其首选的路由引擎和 EIP 实现。尽管使用各种不同的技术,Camel 确实有大量不同的组件。
回答by Henryk Konsek
First let's define
首先让我们定义
JMSis a Java Messaging Service protocol specification.
ESBis Enterprise Service Bus.
JBIis Java Business Integration.
JMS是ĴAVA中号essaging小号ervice协议规范。
ESB是Ënterprise小号ervice乙我们。
JBI是ĴAVA乙usiness我ntegration。
Now we can answer in details:
现在我们可以详细回答:
Apache ActiveMQis an implementation of the above JMS(Java Messaging Service).
阿帕奇ActiveMQ的是上述的实施JMS(ĴAVA中号essaging小号ervice)。
Apache Camelis a message routing engine implementing Enterprise Integration Patterns.
It provides a lot of predefined components.
One of its key component supports JMS(Java Messaging Service).
Apache Camel是一个实现企业集成模式的消息路由引擎。
它提供了很多预定义的组件。
它的一个重要组成部分支撑件的JMS(ĴAVA中号essaging小号ervice)。
Apache ServiceMixis an implementation of the above ESB(Enterprise Service Bus)
compatible with the JBI(Java Business Integration) specification.
It also provides many infrastructural features not available in Camel (like services OSGI bundle support).
SM makes heavy use of Camel.
Apache的ServiceMix的是上述的实施ESB(Ënterprise小号ervice乙我们)
与兼容JBI(ĴAVA乙usiness我ntegration)规范。
它还提供了 Camel 中没有的许多基础结构功能(如服务 OSGI 捆绑支持)。
SM 大量使用 Camel。
Muleis another implementation of ESB(Enterprise Service Bus), but not related to the Camel/ServiceMix family.
骡子是另一个实现ESB(ēnterprise小号ervice乙美国),但没有涉及到骆驼/ ServiceMix的家庭。
回答by Srini
Apache Service Mix :: Its an ESB (Enterprise Service Bus) , a JBI Container and an Integration platform.
Apache Service Mix :: 它是一个 ESB(企业服务总线)、一个 JBI 容器和一个集成平台。
Apache Camel: Smart Routing and Mediation Engine which implements EIP (Enterprise Integration Patterns).
Apache Camel:实现 EIP(企业集成模式)的智能路由和中介引擎。
Apache ActiveMQ: Its a Message Broker that implements JMS.
Apache ActiveMQ:它是一个实现 JMS 的消息代理。
回答by Muhammed Shakir Misarwala
Apache Camel is the implementation of EIP (Enterprise Integration Patterns)
Apache Camel 是 EIP(企业集成模式)的实现
ServiceMix is the product that conforms to the principles of ESB in an SOA environment.
ServiceMix 是在 SOA 环境中符合 ESB 原则的产品。
Active MQ is as good as any other implementation of JMS API
Active MQ 与 JMS API 的任何其他实现一样好
Mule is also an ESB
Mule 也是 ESB
回答by Rajkumar Epari
Mule is a Enterprise service bus providing end to end integration solution.
Mule 是提供端到端集成解决方案的企业服务总线。
ActiveMQ is message broker for queueing messages between subscriber and receiver.
ActiveMQ 是用于在订阅者和接收者之间排队消息的消息代理。
ServiceMix is also a ESB i.e. Enterprise Service Bus
ServiceMix 也是 ESB,即企业服务总线
回答by Aakash Kedia
Camel empowers you to define routing and mediation rules in a variety of domain-specific languages. Mule and SeriviceMix is ESB. ActiveMQ is Messaging service.
Camel 使您能够以各种特定于域的语言定义路由和中介规则。Mule 和 SeriviceMix 是 ESB。ActiveMQ 是消息服务。