JMS and AMQP – RabbitMQ

Your question is a bit messy but Let’s see its bits one by one.

General concept:

The Java Message Service (JMS) API is a Java Message Oriented Middleware (MOM) API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914. It is a messaging standard that allows application components based on the Java Enterprise Edition (Java EE) to create, send, receive, and read messages. It allows the communication between different components of a distributed application to be loosely coupled, reliable, and asynchronous.

Now (from Wikipedia):

The Advanced Message Queuing Protocol (AMQP) is an open standard application layer protocol for message-oriented middleware. The
defining features of AMQP are message orientation, queuing, routing
(including point-to-point and publish-and-subscribe), reliability and
security.

And the most important thing (again from Wikipedia):

Unlike JMS, which merely defines an API, AMQP is a wire-level
protocol. A wire-level protocol is a description of the format of the
data that is sent across the network as a stream of octets.
Consequently any tool that can create and interpret messages that
conform to this data format can interoperate with any other compliant
tool irrespective of implementation language

Some important things you should know:

  1. Keep in mind that AMQP is a messaging technology that do not implement the JMS API.
  2. JMS is API and AMQP is a protocol.So it doesn’t make sense to say that what is default protocol of JMS, of course client
    applications use HTTP/S as the connection protocol when invoking a
    WebLogic Web Service.
  3. JMS is only a API spec. It doesn’t use any protocol. A JMS provider (like ActiveMQ) could be using any underlying protocol to
    realize the JMS API. For ex: Apache ActiveMQ can use any of the
    following protocols: AMQP, MQTT, OpenWire, REST(HTTP), RSS and Atom,
    Stomp, WSIF, WS Notification, XMPP. I suggest you read Using
    JMS Transport as the Connection Protocol
    .

Good Luck 🙂

Leave a Comment