Einrichten des RabbitMQ-Dienstes
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 empfangen.
Der MQF verwendet RabbitMQ als Messaging-Broker, der eine skalierbare Plattform zum Senden und Empfangen von Nachrichten bietet. Es enthält auch einen Mechanismus zum Speichern nicht zugestellter Nachrichten. RabbitMQ basiert auf der AMQP-Spezifikation 0.9.1 (Advanced Message Queuing Protocol).
QUEUE_CONFIGURATION
, um ihn mit Ihrer Site zu verbinden.Verwenden Sie die folgenden Anweisungen für die Diensteinrichtung in Pro Integration-Umgebungen und Starter-Umgebungen, einschließlich der Verzweigung master
.
So aktivieren Sie RabbitMQ:
-
Fügen Sie den erforderlichen Namen, Typ und Festplattenwert (in MB) zusammen mit der installierten RabbitMQ-Version zur Datei "
.magento/services.yaml
"hinzu.code language-yaml rabbitmq: type: rabbitmq:<version> disk: 1024
-
Konfigurieren Sie die Beziehungen in der Datei "
.magento.app.yaml
".code language-yaml relationships: rabbitmq: "rabbitmq:rabbitmq"
-
Fügen Sie Code-Änderungen hinzu, übertragen Sie sie und übertragen Sie sie.
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
aktualisieren. Eine Anleitung zum Aktualisieren oder Herunterstufen eines Dienstes finden Sie unter Dienstversion ändern .Verbindung zu RabbitMQ zum Debugging herstellen
Für Debugging-Zwecke ist es nützlich, eine direkte Verbindung zu einer Dienstinstanz auf eine der folgenden Arten herzustellen:
- Verbindung zur lokalen Entwicklungsumgebung herstellen
- Verbindung mit der Anwendung herstellen
- Verbinden über eine PHP-Anwendung
Verbindung zur lokalen Entwicklungsumgebung herstellen
-
Melden Sie sich bei der CLI und dem Projekt
magento-cloud
an:code language-bash magento-cloud login
-
Sehen Sie sich die Umgebung an, in der RabbitMQ installiert und konfiguriert ist.
code language-bash magento-cloud environment:checkout <environment-id>
-
Verwenden Sie SSH, um eine Verbindung zur Cloud-Umgebung herzustellen:
code language-bash magento-cloud ssh
-
Rufen Sie die RabbitMQ-Verbindungsdetails und Anmeldedaten aus der Variable $MAGENTO_CLOUD_RELATIONSHIPS 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, beispielsweise:
code language-json { "rabbitmq" : [ { "password" : "guest", "ip" : "246.0.129.2", "scheme" : "amqp", "port" : 5672, "host" : "rabbitmq.internal", "username" : "guest" } ] }
-
Aktivieren Sie die lokale Anschlussweiterleitung an RabbitMQ (wenn sich Ihr Projekt in einer anderen Region wie US-3, EU-5 oder AP-3 befindet, ersetzen Sie
us-3
/eu-5
/ap-3
durchus
).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 RabbitMQ Management-Webschnittstelle 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 von Ihnen ausgewählten RabbitMQ-Client von Ihrer lokalen Workstation aus starten, der für die Verbindung mit dem
localhost:<portnumber>
konfiguriert ist. Verwenden Sie dazu die Portnummer, den Benutzernamen und die Kennwortinformationen aus der Variablen MAGENTO_CLOUD_RELATIONSHIPS .
Verbindung mit der Anwendung herstellen
Um eine Verbindung zu RabbitMQ herzustellen, die in einer Anwendung ausgeführt wird, installieren Sie einen Client, z. B. amqp-utils, als Projektabhängigkeit in Ihrer .magento.app.yaml
-Datei.
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 über eine PHP-Anwendung
Um mit Ihrer PHP-Anwendung eine Verbindung zu RabbitMQ herzustellen, fügen Sie eine PHP-Bibliothek zu Ihrem Quellbaum hinzu.