AMQP (Advanced Message Queuing Protocol) is an open protocol for fast asynchronous message transfer between applications with minimal delay.
The RabbitMQ message broker is used to maintain connections with external services via this protocol. Message brokers create a two-way connection with each system of applications. This connection is used to transmit messages, the messages are routed to the corresponding destination points.
AMQP is based on three concepts:
Message – a unit of transmitted data, its main part (content) is not interpreted by the server. Structured headings can be attached to a message.
Exchange – an entity where the messages are sent to but not stored there.
Queue – a holding location where the messages are stored until a consumer takes them. A consumer always takes the messages from one or several queues.
Processing sequence
All messages, generated by the producer, are first accepted in the exchange.
Here they are distributed between the queues. Bindings are used to send messages to the corresponding queues.
Sent messages remain in their queues until the consumer connects and receives them.
The consumer receives the messages.
AMQP implements a delivery verification mechanism: a message is not removed from its queue until an acknowledgement is received from the consumer.
If the response is negative, the message may be sent again or removed from its queue, depending on the producer's configuration settings.
Connect to a queue
To integrate and send messages through the RabbitMQ broker, set up a queue in the system:
Navigate to External Queues → RabbitMQ providers.
Click New and fill in the required fields.
Click Save or Save and Exit.
Field
Mandatory
Description
Name
Y
Specify a name for the newly created message queue. This queue name will be used to send messages from the API.
Host name
Y
Enter a RabbitMQ host name to connect to in the example.comformat.
Port
Y
Specify the server connection port.
Virtual host
N
Specify the host designated in the RabbitMQ server settings.
Connection time out
N
Set the RabbitMQ server connection time out.
Username
Y
Specify a user login for the RabbitMQ server connection.
Password
Y
Specify a user password for the RabbitMQ server connection.
To send messages to a queue, create a server script for message processing using the SimpleExternalRabbitMQ class.