Úvod
V listopadu 2018 aktualizace Magento 2.3.0 v tichosti představila integraci s nástrojem pro správu fronty zpráv RabbitMQ. Nová funkce otevřela výkonné možnosti optimalizace pro Magento 2 Commerce i Open Source edice.
Nedávno jsme mluvili o instalaci a konfiguraci RabbitMQ. Nyní vám ukážeme, jak nakonfigurovat Rabbitmq a používat jej na nainstalované instanci Magento 2.
Výhody
Hlavní výhodou používání RabbitMQ je možnost snížit zatížení serveru ve špičce ukládáním dat na zprostředkovatele zpráv. Před 2.3.0 byly pro tyto účely používány pouze MySQL a cron. Ale nyní můžeme použít Rabbitmq, který může urychlit váš aktuální obchod snížením zatížení databáze MySQL.
Instalace Rabbitmq
Instalace Rabbitmq je popsána v našem článku Instalace a konfigurace RabbitMQ. Které lze použít k instalaci RabbitMQ na váš server Ubuntu nebo CentOS.
Konfigurace Rabbitmq
1. Nejprve je třeba odebrat hostujícího uživatele:
# rabbitmqctl delete_user guest
2. Poté budeme muset vytvořit uživatele s potřebnými oprávněními.
# rabbitmqctl add_user rabbitmq rabbitmq_pwd # rabbitmqctl set_user_tags rabbitmq administrator # rabbitmqctl set_permissions -p / rabbitmq ".*" ".*" ".*"
3. Také musíme vytvořit frontu:
# rabbitmqadmin --username=rabbitmq --password=rabbitmq_pwd declare queue --vhost=/ name=async.operations.all durable=true
To je vše, rabbitmq je připraven k použití. Od této chvíle můžeme začít konfigurovat Magento tak, aby jej používal.
Konfigurace Magento
Nejprve musíme přidat konfiguraci rabbitmq. Lze to provést dvěma způsoby:
Via bin/magento
$ php bin/magento setup:config:set --amqp-host="127.0.0.1" --amqp-port="5672" --amqp-user="rabbitmq" --amqp-password="rabbitmq_pwd" --amqp-virtualhost="/"
Úpravou app/etc/env.php pomocí následujících řádků
'queue' => array ( 'amqp' => array ( 'host' => '127.0.0.1', 'port' => '5672', 'user' => 'rabbitmq', 'password' => 'rabbitmq_pwd', 'virtualhost' => '/' ), ),
Také budete muset přidat cron runner do app/etc/env.php:
'cron_consumers_runner' => [ 'cron_run' => true, 'max_messages' => 0, 'consumers' => [ 'async.operations.all', 'codegeneratorProcessor' ] ]
To je vše. Úspěšně jsme nakonfigurovali spotřebitele rabbitmq v Magento.
Testování rabbitmq spotřebitele na Magento
Chcete-li zobrazit seznam všech spotřebitelů, můžete spustit příkaz:
# php bin/magento queue:consumers:list
Chcete-li spustit spotřebitele, musíte spustit následující příkaz:
# php bin/magento queue:consumers:start async.operations.all
To je vše. Spotřebitel by měl nyní fungovat!
Závěr
RabbitMQ je výkonný zprostředkovatel zpráv, který může pomoci zlepšit rychlost vašeho obchodu. Také bude užitečné snížit zatížení vašeho serveru MySQL, což může být užitečné při špičkách zatížení.