External Queues
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 message 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.
Process 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 the system receives the confirmation that the consumer has received the message.
- If the response is negative, the message may be sent again or removed from its queue, depending on the configuration settings done by the producer.
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 Producers.
- Click New and fill in the required fields.
- Click Save or Save and exit to apply the changes.
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.com format. |
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.