Einführung
Im November 2018 führte das Magento 2.3.0-Update stillschweigend die Integration mit dem Nachrichtenwarteschlangen-Verwaltungstool RabbitMQ ein. Die neue Funktion eröffnete leistungsstarke Optimierungsoptionen sowohl für die Magento 2 Commerce- als auch für die Open Source-Edition.
Kürzlich haben wir über die Installation und Konfiguration von RabbitMQ gesprochen. Jetzt zeigen wir Ihnen, wie Sie Rabbitmq konfigurieren und auf der installierten Magento 2-Instanz verwenden.
Vorteile
Der Hauptvorteil der Verwendung von RabbitMQ ist die Möglichkeit, die Belastung des Servers während der Stoßzeiten zu verringern, indem Daten auf dem Message Broker gespeichert werden. Vor 2.3.0 wurden für diese Zwecke nur MySQL und Cron verwendet. Aber jetzt können wir Rabbitmq verwenden, das Ihren aktuellen Shop beschleunigen kann, indem es die Belastung der MySQL-Datenbank verringert.
Rabbitmq-Installation
Die Rabbitmq-Installation wird in unserem Artikel RabbitMQ-Installation und -Konfiguration beschrieben. Damit kann RabbitMQ auf Ihrem Ubuntu- oder CentOS-Server installiert werden.
Rabbitmq-Konfiguration
1. Zuerst müssen Sie den Gastbenutzer entfernen:
# rabbitmqctl delete_user guest
2. Danach müssen wir einen Benutzer mit den erforderlichen Berechtigungen erstellen.
# rabbitmqctl add_user rabbitmq rabbitmq_pwd # rabbitmqctl set_user_tags rabbitmq administrator # rabbitmqctl set_permissions -p / rabbitmq ".*" ".*" ".*"
3. Außerdem müssen wir eine Warteschlange erstellen:
# rabbitmqadmin --username=rabbitmq --password=rabbitmq_pwd declare queue --vhost=/ name=async.operations.all durable=true
Das ist alles, rabbitmq ist einsatzbereit. Ab sofort können wir damit beginnen, Magento für die Verwendung zu konfigurieren.
Magento-Konfiguration
Zunächst müssen wir die Rabbitmq-Konfiguration hinzufügen. Es gibt zwei Möglichkeiten:
Über 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="/"
Durch Bearbeiten von app/etc/env.php mit den folgenden Zeilen
'queue' => array ( 'amqp' => array ( 'host' => '127.0.0.1', 'port' => '5672', 'user' => 'rabbitmq', 'password' => 'rabbitmq_pwd', 'virtualhost' => '/' ), ),
Außerdem müssen Sie den Cron-Runner zu app/etc/env.php hinzufügen:
'cron_consumers_runner' => [ 'cron_run' => true, 'max_messages' => 0, 'consumers' => [ 'async.operations.all', 'codegeneratorProcessor' ] ]
Das ist alles. Wir haben den Rabbitmq-Verbraucher erfolgreich in Magento konfiguriert.
Kaninchenmq-Verbraucher auf Magento testen
Um alle Verbraucher aufzulisten, können Sie folgenden Befehl ausführen:
# php bin/magento queue:consumers:list
Um den Verbraucher auszuführen, müssen Sie den folgenden Befehl ausführen:
# php bin/magento queue:consumers:start async.operations.all
Das ist alles. Der Verbraucher sollte jetzt funktionieren!
Schlussfolgerung
RabbitMQ ist ein leistungsstarker Nachrichtenbroker, der Ihnen helfen kann, die Geschwindigkeit Ihres Geschäfts zu verbessern. Außerdem ist es hilfreich, die Last auf Ihrem MySQL-Server zu verringern, was bei Lastspitzen hilfreich sein kann.