summarize
AMQP (Advanced Message Queuing Protocol), a network protocol for delivering asynchronous messages between processes, is theapplication layer protocol (ALP)AMQP is an open standard. Clients and messaging middleware based on this protocol can deliver messages without being restricted by conditions such as different products of clients/middleware, different development languages, etc. The main features of AMQP are message oriented, queuing, routing (including peer-to-peer and publish/subscribe), reliability, and security.AMQP enforces behaviors in the messaging provider and the client, which makes the products from different companies and vendors truly interoperable capabilities.

- Organizations - Applications in different organizations
- Technology - Applications on different platforms
- Time - system does not need to be available at the same time
- Space - reliable operation over long distances or poorly networked networks
Development History
Message Queue originated when Vivek Ranadivé, a hardware design educator from MIT, envisioned a general purpose software bus, like the one on a motherboard, for other applications to access. Vivek founded Teknekron in 1983, and Goldman Sachs and others were the first to adopt Teknekron's software as the first users of the software for financial transactions. Vivek founded Teknekron in 1983, and companies such as Goldman Sachs were among the first to adopt Teknekron's software for financial trading, along with the first generation of message queuing software: Teknekron's The Information Bus (TIB).
Teknekron's TIB allows application developers to establish a set of rules to describe the content of a message, and as long as the message is published according to these rules, any consumer application can subscribe to the content of interest, completely decoupling the producer and consumer of the message and allowing for flexible mixing during transmission. This feature attracted the attention of telecommunications and especially news organizations, and in 1994 Reuters acquired Teknekron.
Due to the response of message queuing applications in financial transactions, BIM started to develop its own message queuing software (BIM MQ) in 1990, which gradually evolved into WebSphere MQ and ruled the commercial message queuing platform market. At the same time Microsoft developed Microsoft Message Queue (MSMQ). However, there is no interoperability between the vendors' MQs. To solve this problem, the Java Message Service (JMS) was created in 2001 in an attempt to cross the barriers and solve the interoperability problem by providing a public Java API that hides the actual interfaces provided by the various vendors of MQ, but the use of a single, standardized interface to glue together the many disparate interfaces makes the application more fragile.
In 2004, JPMorgan Chase and iMatix worked together to develop the Advanced Message Queuing Protocol (AMQP), which was designed from the outset to be an open standard that could be implemented by anyone who wanted to interact with MQ servers from any AMQP vendor. In 2007, Rabbit Technology released RabbitMQ 1.0, based on the AMQP standard.
AMQP protocol

Message Queue:Message Queue
A queue acts as a buffer to store messages for later use. A queue can also be declared using a number of attributes during the creation process. For example, it can be marked as persistent, auto-delete, and exclusive, where exclusive means that it can only be used by one connection and that the queue will be deleted when that connection is closed.
Exchanges and Exchange Types: Exchanges and Exchange Types
The channel routes messages to a queue based on the type of exchange and the binding between the exchange and the queue. For a queue to receive a message, it must be bound to at least one exchange,AMQP 0.9.1 Agents should provide four types of exchanges - direct exchanges, fanout exchanges, topic exchanges, and header exchanges.An exchange can be declared using a number of attributes during the creation process. For example, it can be marked as persistent so that it continues to exist after the agent is restarted, or it can be marked as auto-delete, which means that it is automatically deleted when the last queue is unbound.
Binding: Binding
A binding is a relationship between a queue and an exchange, where a set of rules used by the exchange (as well as other rules) are used to route messages to the queue
Message and Content: Message and Content
A message is an entity that is sent from a publisher to a queue and eventually subscribed to by a user. Each message contains a set of headers for defining attributes such as lifecycle, persistence, and priority.AMQP 0.9.1 also has a built-in feature called message acknowledgment, which is used to acknowledge message delivery and/or processing.
Connection: Connection
A connection in AMQP 0.9.1 is a network connection, such as a TCP/IP socket connection, between an application and an AMQP agent.
Channel: Channel
is a virtual connection within a connection, between two AMQP peers. The posting of messages to and from a queue is performed through a channel (AMQP). A channel is multiplexed and a connection can have multiple channels.
Virtual Hosts
Virtual hosting (vhost) provides a way to isolate applications in a proxy. Different users can have different access rights to different virtual hosts. When queues and exchanges are created, they exist in only one virtual host.
AMQP Methods: Methods
AMQP 0.9.1 provides a number of methods or operations that can be performed.Some examples of AMQP methods include opening a channel, declaring a queue, or deleting an exchange (channel-open, queue-declare, or exchange-delete-ok)
AMQP vs MQTT
While the AMQP andMQTTThere are many differences in architecture and protocols, but they are being used in a wide variety of applications such as the Internet of Things. As open source protocols, both AMQP and MQTT can be used in all applications depending on client requirements and available bandwidth
sports event | AMQP | MQTT |
define | AMQP extends to the Advanced Message Queuing Protocol.AMQP provides a richer messaging environment. | MQTT is defined as Message Queuing Telemetry Transport. It provides a simple way of serving message queuing and is mainly implemented in embedded systems |
contexts | AMQP was developed by Financial Group as an open source and customer driven queue. It is improving every day in the market without any customization | MQTT is primarily vendor-driven, developed by IBM, and expensive to implement. |
protocols | AMQP uses TCP for asynchronous transfer of messages regardless of any choice of operating system, hardware, or programming language. It provides messaging services that are fully alive. and AMQP operates within parties under the various controls of network users and infrastructure resources. | Similar to AMQP, MQTT uses TCP to share messages in an asynchronous method independent of any attributes. It is designed for small devices operating on the smallest bandwidth of the network. mqtt considers intricate parties managed by a nearby private infrastructure. |
Architecture Optimization | It has advanced optimizations on the data framing line with buffering methods that improve server performance. | The framework performs framing for minimal storage devices using a stream-like approach. It does not allow the transfer of bulk mail. |
messaging service | AMQP applies to five different properties, such as publisher-subscriber unaffected survival for as long as it takes for it to remain in a queue, or at rest if no one is using the queue. It supports various messaging round robin mechanisms, classic or traditional message queues, combinations, and save and forward. It performs metadata messaging to help with idempotent messaging and message grouping. | Based on publish and subscribe messaging to content and is highly transient. It is primarily used for subscribers and publishers of actively routed links. It is limited in its application to traditional extended-life message queues. |
message processing | It supports different acknowledgements, transactions, use cases and entire message queues. It can break down the various transaction codes that are required and recognize as expired when there is a delay to fine-tune performance. | MQTT does not support any type of message processing, only acknowledgement |
Connection Security | AMQP utilizes the SASL method to select security without changing any protocols. It provides different names for components in the same network. Therefore, this feature enables us to use nested firewalls and gatekeepers. It will authenticate the user before broadcasting any message | MQTT requires small usernames and passwords and no precautions are set during this trend. |
last value queue | It does not support the last value in the queue | It provides the Retain command and supports the last value in the queue. |
Namespaces in messages | It allows multiple ways to find messages, such as nodes and queues | It uses "namespaces" in the hierarchical transport of messages. |
Content review.