Advanced Message Queuing Protocol (AMQP) – is an open application layer protocol for message-oriented middleware with a focus on queuing, routing (P2P, PubSub), security and reliability.
AMQP model (AMQP model): A logical structure represented by key objects and semantics. Servers that meet the AMQP specification must provide these objects and semantics. To achieve the semantics defined in this specification, the client can send commands to control the AMQP server.
Connection: a network connection, such as a TCP/IP socket.
Session: a named dialog between endpoints. In a conversational context, guarantee “exactly once”.
Channel: An independent bi-directional data flow channel in a multiplexed connection. Provide a physical transmission medium for the session.
Client: The initiator of the connection or AMQP session. AMQP is asymmetric, the client creates and consumes messages and the server stores and routes these messages.
Server: the process that accepts client connections and implements AMQP message queuing and routing functions. Also called a “message agent”.
Endpoint (Peer): any party in an AMQP conversation. An AMQP connection includes two endpoints (one client and one server).
Partner: when describing an interaction between two endpoints, the term “partner” is used to refer to an abbreviation for the “other” endpoint. For example, we define endpoint A and endpoint B. When they interact, endpoint B is the partner of endpoint A, and endpoint A is the partner of endpoint B.
Assembly: an ordered collection of segments that form a logical unit of work.
Segment: an ordered collection of frames forming a complete subunit in a set of segments.
Frame: an atomic unit for AMQP transmission. A frame is an arbitrary fragment in a segment.
Control: one-way instructions. The AMQP specification suggests that the transmission of these instructions is unreliable.
Command: Commands that must be acknowledged. The AMQP specification assumes that the transmission of these commands is reliable.
Exception: An error that may occur in the execution of one or more commands.
Class: a group of AMQP commands or controls used to describe a particular function.
Message header (header): a special segment that describes the attributes of the message data.
Body: a special segment that contains the application data. The message body segment is completely transparent to the server – the server cannot view or modify the message body.
Content: The message data contained in the message body segment.
Exchange: An object on the server used to receive messages sent by a vendor and to route these messages to a queue on the server.
Exchange type: a type of exchange based on different routing semantics.
Message queue: a named object used to store messages before they are sent to consumers.
Binding: the relationship between the message queue and the switch.
Binding key: the name of the binding. Some switch types may use this name as a template to define the behavior of the binding mechanism.
Routing key: a message header that the switch can use to decide how to route the message.
Durable: a server resource. If the server restarts, the saved message data will not be lost.
Temporary: server resource. If the server is restarted, the saved message data will be lost.
Permanent: the server saves the message in reliable disk storage; if the server is restarted, the message will not be lost.
Non-Persistent: the server stores the message in memory; if the server is restarted, the message may be lost.
Consumer: a client application that requests messages from the message queue.
Producer: the client application that publishes messages for exchange.
Virtual Host: a package of switches, message queues, and related objects. A virtual host is an independent server domain that uses the same authentication and identity encryption environment. After logging on to a server, a client application can select a virtual host.