Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java Messaging : Difference between ActiveMQ, Mule, ServiceMix and Camel

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.

like image 238
peakit Avatar asked Apr 24 '10 15:04

peakit


People also ask

Is Apache Camel A message queue?

Most of the integration projects use messaging as it helps in creating loosely coupled application architecture. Messaging can be either synchronous or asynchronous. JMS supports both point-to-point and publish-subscribe models.

What is Apache Camel used for?

Apache Camel is an open source integration framework designed to make integrating systems simple and easy. It allows end users to integrate various systems using the same API, providing support for multiple protocols and data types, while being extensible and allowing the introduction of custom protocols.

What is difference between JMS and ActiveMQ?

What Is the Difference Between JMS and ActiveMQ? ActiveMQ is a JMS provider. A JMS provider forms the software framework for facilitating the use of JMS concepts inside an application. A single node of ActiveMQ which allows clients to connect to it and use these messaging concepts is called an “ActiveMQ Broker.”

What is ActiveMQ in mule?

Apache ActiveMQ is a popular open source messaging provider which is easy to integrate with Mule. ActiveMQ supports the JMS 1.1 and J2EE 1.4 specifications and is released under the Apache 2.0 License. For ActiveMQ versions starting with 5.12.


1 Answers

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.

like image 92
duffymo Avatar answered Sep 19 '22 20:09

duffymo