Einrichten RabbitMQ Services
Das Message Queue Framework (MQF) ist ein System in Adobe Commerce, das es einem Modul ermöglicht, Nachrichten in Warteschlangen zu veröffentlichen. Außerdem werden die Verbraucher definiert, die die Nachrichten asynchron erhalten.
Der MQF verwendet RabbitMQ als Messaging-Broker, der eine skalierbare Plattform für das Senden und Empfangen von Nachrichten bietet. Sie enthält auch einen Mechanismus zum Speichern nicht zugestellter Nachrichten. RabbitMQ basiert auf der Spezifikation des Advanced Message Queuing Protocol (AMQP) 0.9.1.
QUEUE_CONFIGURATION
Umgebungsvariable , um ihn mit Ihrer Site zu verbinden.Verwenden Sie die folgenden Anweisungen für die Einrichtung des Services in Pro Integration-Umgebungen und Starter-Umgebungen, einschließlich der master
.
So aktivieren Sie RabbitMQ:
-
Fügen Sie den erforderlichen Namen, den Typ und den Wert der Festplatte (in MB) zusammen mit der installierten RabbitMQ-Version zur
.magento/services.yaml
hinzu.code language-yaml rabbitmq: type: rabbitmq:<version> disk: 1024
-
Konfigurieren Sie die Beziehungen in der
.magento.app.yaml
.code language-yaml relationships: rabbitmq: "rabbitmq:rabbitmq"
-
Code-Änderungen hinzufügen, übertragen und per Push übertragen.
code language-bash git add .magento/services.yaml .magento.app.yaml
code language-bash git commit -m "Enable RabbitMQ service"
code language-bash git push origin <branch-name>
services.yaml
und .magento.app.yaml
Konfigurationsdateien aktualisieren. Unter Ändern der Service-Version finden Sie Anleitungen zum Aktualisieren oder Herunterstufen eines Services.Verbinden mit RabbitMQ zum Debugging
Zu Debugging-Zwecken ist es hilfreich, eine direkte Verbindung zu einer Service-Instanz auf eine der folgenden Arten herzustellen:
- Verbinden über Ihre lokale Entwicklungsumgebung
- Verbindung mit der Anwendung herstellen
- Verbinden von Ihrer PHP-Anwendung
Verbinden über Ihre lokale Entwicklungsumgebung
-
Melden Sie sich bei der
magento-cloud
CLI an und führen Sie folgendes Projekt aus:code language-bash magento-cloud login
-
Überprüfen Sie die Umgebung mit installiertem und konfiguriertem RabbitMQ.
code language-bash magento-cloud environment:checkout <environment-id>
-
SSH verwenden, um eine Verbindung zur Cloud-Umgebung herzustellen:
code language-bash magento-cloud ssh
-
Rufen Sie die RabbitMQ-Verbindungsdetails und Anmeldedaten aus der $MAGENTO_CLOUD_RELATIONSHIPS-Variablen ab:
code language-bash echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
oder
code language-bash php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"])));'
Suchen Sie in der Antwort die RabbitMQ-Informationen, z. B.:
code language-json { "rabbitmq" : [ { "password" : "guest", "ip" : "246.0.129.2", "scheme" : "amqp", "port" : 5672, "host" : "rabbitmq.internal", "username" : "guest" } ] }
-
Aktivieren der lokalen Portweiterleitung an RabbitMQ (wenn sich Ihr Projekt in einer anderen Region wie z. B. US-3, EU-5 oder AP-3 befindet, ersetzen Sie
us-3
durcheu-5
/ap-3
/us
)code language-bash ssh -L <port-number>:rabbitmq.internal:<port-number> <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
Ein Beispiel für den Zugriff auf die Web-Benutzeroberfläche der RabbitMQ-Verwaltung unter
http://localhost:15672
:code language-bash ssh -L 15672:rabbitmq.internal:15672 <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
-
Während die Sitzung geöffnet ist, können Sie einen RabbitMQ-Client Ihrer Wahl von Ihrer lokalen Workstation aus starten, der so konfiguriert ist, dass er über die Portnummer, den Benutzernamen und Kennwortinformationen der Variablen MAGENTO_CLOUD_RELATIONSHIPS eine Verbindung zur
localhost:<portnumber>
herstellt.
Verbindung mit der Anwendung herstellen
Um eine Verbindung zu RabbitMQ herzustellen, das in einer Anwendung ausgeführt wird, installieren Sie einen Client wie amqp-utils als Projektabhängigkeit in Ihrer .magento.app.yaml
.
Beispiel:
dependencies:
ruby:
amqp-utils: "0.5.1"
Wenn Sie sich bei Ihrem PHP-Container anmelden, geben Sie einen beliebigen amqp-
Befehl ein, der zur Verwaltung Ihrer Warteschlangen verfügbar ist.
Verbinden von Ihrer PHP-Anwendung
Um RabbitMQ mit Ihrer PHP-Anwendung zu verbinden, fügen Sie Ihrer Quellstruktur eine PHP-Bibliothek hinzu.