RabbitMQ is an open source message broker that offers a reliable, highly available, scalable and portable messaging system.
Message queues provide an asynchronous communications mechanism in which the sender and the receiver of a message do not contact each other. Nor do they need to communicate with the message queue at the same time. When a sender places a messages onto a queue, it is stored until the recipient receives them.
Magento Open Source uses RabbitMQ to manage these message queues. As of Magento release 2.3.0, RabbitMQ can be used on Magento Open Source installations.
The message queue system must be established before you install Magento. The basic sequence is
- Install RabbitMQ and any prerequisites.
- Connect RabbitMQ and Magento.
A basic message queue system can be implemented using cron instead of RabbitMQ. See Configure message queues for more information.
Install RabbitMQ on Ubuntu
To install RabbitMQ on Ubuntu 16 enter the following command:
1 sudo apt install -y rabbitmq-server
This command also installs the required Erlang packages.
If you have an older version of Ubuntu, RabbitMQ recommends installing the package from their website.
- Download rabbitmq-server_3.6.6-1_all.deb.
- Install the package with
Refer to Installing on Debian/Ubuntu for more information.
Install RabbitMQ on CentOS
RabbitMQ was written using the Erlang programming language, which must be installed on the same system as RabbitMQ.
See Manual installation for more information.
Run the following commands to install this feature.
1 wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
1 rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
The RabbitMQ server is included on CentOS, but the version is often old. RabbitMQ recommends installing the package from their website.
- Download rabbitmq-server-3.5.6-1.noarch.rpm.
Run the following commands as a user with root permissions:
rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
yum install rabbitmq-server-3.5.6-1.noarch.rpm
Refer to Installing on RPM-based Linux for more information.
Review the official RabbitMQ documentation to configure and manage RabbitMQ. Pay attention to the following items:
- Environment variables
- Port access
- Default user accounts
- Starting and stopping the broker
- System limits
Install Magento with RabbitMQ and connect to Magento Open Source or Magento Commerce
If you installed Magento after you installed RabbitMQ, add the following command line parameters when you install Magento Open Source or Magento Commerce:
--amqp-host="<hostname>" --amqp-port="5672" --amqp-user="<user_name>" --amqp-password="<password>" --amqp-virtualhost="/"
||The hostname where RabbitMQ is installed.|
||The port to use to connect to RabbitMQ. The default is
||The username for connecting to RabbitMQ. Do not use the default user
||The password for connecting to RabbitMQ. Do not use the default password
||The virtual host for connecting to RabbitMQ. The default is
||Indicates whether to connect to RabbitMQ. The default is
Connect RabbitMQ to Magento Open Source or Magento Commerce
If you already had Magento installed and you want to connect it to RabbitMQ, add a
queue section in the
<install_directory>/app/etc/env.php file so that it is similar to the following:
1 2 3 4 5 6 7 8 9 10 11 'queue' => array ( 'amqp' => array ( 'host' => 'rabbitmq.example.com', 'port' => '11213', 'user' => 'magento', 'password' => 'magento', 'virtualhost' => '/' ), ),
bin/magento setup:upgrade to apply the changes and create the required queues in RabbitMQ.
To configure support for SSL, edit the
ssl_options parameters in the
<install_directory>/app/etc/env.php file so that they are similar to the following:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 'queue' => array ( 'amqp' => array ( 'host' => 'rabbitmq.example.com', 'port' => '11213', 'user' => 'magento', 'password' => 'magento', 'virtualhost' => '/', 'ssl' => 'true', 'ssl_options' => [ 'cafile' => '/etc/pki/tls/certs/DigiCertCA.crt', 'certfile' => '/path/to/magento/app/etc/ssl/test-rabbit.crt', 'keyfile' => '/path/to/magento/app/etc/ssl/test-rabbit.key' ], ), ),
Start the message queue consumers
After you have connected Magento and RabbitMQ, you must start the message queue consumers. See Configure message queues for details.