Java Messaging : Difference between ActiveMQ, Mule, ServiceMix and Camel
Asked Answered
G

6

59

I am new to Messaging and want to know the difference between ActiveMQ, Mule, ServiceMix and 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.

Gord answered 24/4, 2010 at 15:40 Comment(0)
S
81

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.

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.

Apache Camel is an implementation of the patterns in Enterprise Integration Patterns. It can use JMS and other components to put the ideas from that book into place.

JMS is fundamental to the other technologies, like JDBC is the foundation for Hibernate, iBatis, etc.

JMS is a Java API and a specification and TCK (part of Java EE). ActiveMQ is a particular implementation of it.

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 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 components though that use various different technologies.

Spivey answered 24/4, 2010 at 15:47 Comment(2)
Does Apache Camel uses ActiveMQ, Mule and ServiceMix to implement those patterns? Or is it using raw JMS?Gord
Camel can support any JMS provider; it has shortcuts in it's syntax for using ActiveMQ but can use any other JMS queue just as fine.Selry
S
55

First let's define

JMS is a Java Messaging Service protocol specification.
ESB is Enterprise Service Bus.
JBI is Java Business Integration.

Now we can answer in details:

Apache ActiveMQ is an implementation of the above JMS (Java Messaging Service).

Apache Camel is 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 ServiceMix is 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.

Mule is another implementation of ESB (Enterprise Service Bus), but not related to the Camel/ServiceMix family.

Sewellyn answered 25/4, 2010 at 13:3 Comment(0)
F
2

Apache Service Mix :: Its an ESB (Enterprise Service Bus) , a JBI Container and an Integration platform.

Apache Camel: Smart Routing and Mediation Engine which implements EIP (Enterprise Integration Patterns).

Apache ActiveMQ: Its a Message Broker that implements JMS.

Filmore answered 5/3, 2014 at 23:55 Comment(0)
I
2

Mule is a Enterprise service bus providing end to end integration solution.

ActiveMQ is message broker for queueing messages between subscriber and receiver.

ServiceMix is also a ESB i.e. Enterprise Service Bus

Ilowell answered 26/5, 2016 at 17:43 Comment(0)
E
2

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.

Estep answered 21/11, 2016 at 21:32 Comment(0)
W
0

Apache Camel is the implementation of EIP (Enterprise Integration Patterns)

ServiceMix is the product that conforms to the principles of ESB in an SOA environment.

Active MQ is as good as any other implementation of JMS API

Mule is also an ESB

Weathers answered 24/5, 2016 at 16:7 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.