Differences between AMQP 1.0 vs. 0.91 Protocol
Summary
AMQP 1.0 (Advanced Message Queuing Protocol) is an open-source, binary wire protocol designed to provide a messaging backbone for distributed applications. It is designed to provide reliable, secure and robust messaging while improving performance and scalability. AMQP 1.0 is an international standard for messaging middleware, providing a platform for applications and services to communicate with each other. It is an interoperable protocol that provides a common language for messaging systems.
AMQP 0.9.1 is an open-source wire-level messaging protocol that provides an interoperable messaging platform for applications, middleware, and other systems. It enables applications to communicate in a secure and reliable manner, independent of the underlying hardware and software. It was originally developed by JPMorgan Chase and is now maintained by the Advanced Message Queuing Protocol Working Group. AMQP 0.9.1 is the most recent version of the protocol.
Some popular message brokers that still use AMQP 0.9.1 include RabbitMQ, Apache ActiveMQ, Apache Qpid, and Solace PubSub+.
RabbitMQ, Apache ActiveMQ, Apache Qpid, and Azure Service Bus are some of the message brokers still using AMQP 1.0.
AMQP 1.0 is a major version upgrade from AMQP 0.9.1. AMQP 1.0 includes improvements to the wire protocol and an updated messaging model. It adds flexibility to the messaging model, allowing for easier integration with other technologies, such as web services. It also adds support for a more robust security model, better message routing capabilities, and enhanced reliability. AMQP 1.0 also provides a more efficient binary payload format, which results in improved performance and scalability.
Message Brokers
- Apache Kafka
- RabbitMQ
- ActiveMQ
- TIBCO Enterprise Message Service
- Solace PubSub+
- IBM MQ
- Microsoft Azure Service Bus
- Google Cloud Pub/Sub
- Amazon Simple Notification Service (SNS)
- Apache ActiveMQ Artemis
AMQP 1.0 vs 0.9.1
The following table summarises the major differences between 1.0 and 0.9.1:
Feature | AMQP 1.0 | AMQP 0.9.1 |
---|---|---|
Protocol | Binary protocol | Text protocol |
Models | Sender/Receiver, | Exchange/Queue |
Publish/Subscribe, | ||
Request/Response | ||
Queues | Stateful | Stateless |
Messages | Properties and | No properties |
Application Properties | ||
Transport | Pluggable | Fixed TCP |
Routing | Based on Address | Based on Route |
Linking | Dynamic | Static |
Sessions | Concept of Sessions | No Sessions |
Security | Authentication & | No Authentication |
Authorization | ||
Transaction | Supported | Not Supported |
Header | Optional | Mandatory |
Flow | Window-based | Credit-based |
State | Symmetric | Asymmetric |
Durable | Optional | Mandatory |
Timeout | Optional | Mandatory |
TTL | Optional | Mandatory |
Redeliver | Optional | Mandatory |
Dead-Letter | Optional | Mandatory |
Name | Optional | Mandatory |
Routing | Based on Address | Based on Route |
Exchanges | Multi-cast | Uni-cast |
Consumer | Control | No Control |
Delivery | Guarantee | No Guarantee |
Encoding | Pluggable | Fixed |