EDUCBA Logo

EDUCBA

MENUMENU
  • Explore
    • EDUCBA Pro
    • PRO Bundles
    • Featured Skills
    • New & Trending
    • Fresh Entries
    • Finance
    • Data Science
    • Programming and Dev
    • Excel
    • Marketing
    • HR
    • PDP
    • VFX and Design
    • Project Management
    • Exam Prep
    • All Courses
  • Blog
  • Enterprise
  • Free Courses
  • Log in
  • Sign Up
Home Software Development Software Development Tutorials Top Differences Tutorial AMQP vs JMS
 

AMQP vs JMS

Priya Pedamkar
Article byPriya Pedamkar

Updated March 28, 2023

AMQP-vs-JMS

 

 

Difference between AMQP vs JMS

AMQP stands for  Advanced  Queuing  Protocol. AMQP  is a  stable, lightweight, symmetric, multiplexed, consistent protocol for transferring messages between applications. It is not linked to any specific message source or target model, or topology. It facilitates classic message brokers, a new hyper-scale messaging framework, and peer-to-peer communication. In this topic, we are going to learn about AMQP vs JMS. JMS  stands for  Java  Message  Service.  It is an application program interface (API) for Sun Microsystems that facilitates proper communication between computers within a network, known as messaging. It is an API that enables the creation, receiving, and reading of messages. This includes loosely coupled asynchronous and efficient communication.

Watch our Demo Courses and Videos

Valuation, Hadoop, Excel, Mobile Apps, Web Development & many more.

What is AMQP?

Stability and interoperability are two of the most important factors for using AMQP. It offers a wide range of messaging-related features like efficient queuing, publishing and subscribing topic-based messaging, robust routing, transactions, and security. AMQP explicitly exchanges route messages — in fanout type, by topic and also based on headers.

Let’s look at the system’s architecture and its component.

The architecture is easy; there are server applications called producers who generate messages and deliver them to a broker, often called an AMQP server. The messages are redirected and distributed inside the broker before they arrive at queues, where they are linked to other applications named consumers and get the messages to be processed.

AMQP is a session layer protocol that operates over the TCP layer. As we can see in Figure.1, the broker has three components.

AMQP

  • Exchange: An exchange is responsible for routing the messages with links and routing keys to various queues
  • Queues: It is a buffer that stores messages, and consumers receive messages from queues.
  • Bindings: It creates a relation between exchange and queues.

What is JMS?

JMS  is about sending and receiving messages from two or more JMS clients, analogous to the JDBC API, which can be used to access various relational databases; the JMS API offers vendor-independent connectivity to Enterprise Messaging systems such as JBOSS Messaging, WebSphere MQ, BEA WebLogic, etc.

JMS

The following are the elements JMS application consists of :

  • JMS Provider: A JMS provider is a communications system that uses JMS interfaces that offers monitoring and control capabilities. Implementation of Java EE application requires a JMS provider.
  • JMS Clients: They are the programs or components that generate and consume messages written in Java. Every part of the Java EE framework may serve as a client of JMS.

Administrative tool: It enables you to link factories and destinations into a JNDI namespace. A JMS client could then use resource injection to enter the items controlled in the namespace and logically attach them to the same entity via the

.JMS provider.

Head to Head Comparison Between AMQP vs JMS (Infographics)

Below are the top differences between AMQP vs JMS

AMQP-vs-JMS-info

Key Differences of AMQP vs JMS

Here are the following key differences between AMQP and JMS mention below

Abstraction

  • AMQP: The Advanced Message Queuing Protocol (AMQP) is an open standard protocol for exchanging business messages between applications or organizations. These links systems feed enterprise processes with the knowledge they require and transmits the commands that accomplish their objectives efficiently forward.
  • JMS: JMS is an API that is part of Java EEE for sending messages between two or more clients. There are several JMS providers, including OpenMQ (the default for glassfish), HornetQ (Jboss) and ActiveMQ.

Messaging Model

  • AMQP: AMQP supports 4 models. Those are the following.
    • Direct  Exchange
    • Fanout Exchange
    • Topic Exchange
    • Header Exchange
  • JMS: On the other side, JMS supports 2 distinct models. Those are the following.
    • Point to point
    • Publish and subscribe

Data types

  • AMQP: AMQP supports only binary data types. It operates around a binary wire protocol intended for scalability between various vendors and platforms. By the word, wire-level protocol means it is a summary of the data format that is sent as a series of octets across the network. Consequently, any device capable of generating and decoding messages that adhere to this data format will communicate with any other compliant tool regardless of the language of implementation.
  • JMS: JMS supports 4 different data types. Those are the following.
    • Byte
    • Map
    • String
    • Int

Data Flow

  • AMQP: The AMQP message producer will send messages to exchange along with the routing key, and Exchange will be tied to the queue in AMQP by binding. A binding is a directive that includes which message to route from an exchange to a queue.
  • JMS: JMS uses a simple message routing system where both the producer and the consumer exchange messages by accessing the same queue or topic. Although both the message producer and the consumer are connected to the same queue, the consumer’s message will only be received if the message selector is true.

Compatibility

  • AMQP: AMQP, on the other side, is nothing but a communication client- messaging service protocol; it connects different systems to one another. This is compatible and scalable with various platforms.
  • JMS: The JMS application, which implements the JMS API, may interact against the JMS server and use any protocol. The JMS application must, however, ensure that it complies with the JMS API.

Comparison Table of AMQP vs JMS

Now let’s draft the comparison between AMQP vs JMS in the table below.

Comparison Points AMQP JMS
Origin AMQP was originated in 2003 at JPMorgan Chase. JMS was developed at Sun Microsystems.
Abstraction AMQP is a protocol. JMS is a standard API.
Messaging Model AMQP supports 4 models. JMS supports 2 models.
Data types AMQP supports only the binary data type. JMS supports 5 different data types.
Data Flow In AMQP, producers send data to exchange and then to the queue. In JMS, producers send data to the queue or topic directly.
Tech Compatibility AMQP supports many technologies. JMS is specific for Java users only.

Conclusion

Java Server Messages is an API, and AMQP is a standard protocol. It is possible for implementing JMS that uses AMQP as protocol; a JMS client can use AMQP as a communication protocol with the messaging server. AMQP centres around a binary wire protocol built for interoperability between various vendors and platforms for scalability.

Recommended Articles

This is a guide to AMQP vs JMS. Here we discuss the AMQP and JMS key differences with infographics and comparison table. You may also have a look at the following articles to learn more –

        1. AMQP vs MQTT
        2. RabbitMQ vs MQTT
        3. ZeroMQ vs RabbitMQ
        4. RabbitMQ vs Redis

Primary Sidebar

Footer

Follow us!
  • EDUCBA FacebookEDUCBA TwitterEDUCBA LinkedINEDUCBA Instagram
  • EDUCBA YoutubeEDUCBA CourseraEDUCBA Udemy
APPS
EDUCBA Android AppEDUCBA iOS App
Blog
  • Blog
  • Free Tutorials
  • About us
  • Contact us
  • Log in
Courses
  • Enterprise Solutions
  • Free Courses
  • Explore Programs
  • All Courses
  • All in One Bundles
  • Sign up
Email
  • [email protected]

ISO 10004:2018 & ISO 9001:2015 Certified

© 2025 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
Loading . . .
Quiz
Question:

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

By continuing above step, you agree to our Terms of Use and Privacy Policy.
*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you

EDUCBA Login

Forgot Password?

🚀 Limited Time Offer! - 🎁 ENROLL NOW