Einrichten RabbitMQ Services
- Themen:
- Cloud
Erstellt für:
- Admin
- Entwickler
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 bereitstellt. 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 erforderlichen Typ und den erforderlichen Datenträgerwert (in MB) zusammen mit der installierten RabbitMQ-Version zur
.magento/services.yaml
hinzu.rabbitmq: type: rabbitmq:<version> disk: 1024
-
Konfigurieren Sie die Beziehungen in der
.magento.app.yaml
.relationships: rabbitmq: "rabbitmq:rabbitmq"
-
Code-Änderungen hinzufügen, übertragen und per Push übertragen.
git add .magento/services.yaml .magento.app.yaml
git commit -m "Enable RabbitMQ service"
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.Herstellen einer Verbindung zu 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:magento-cloud login
-
Sehen Sie sich die Umgebung mit installiertem und konfiguriertem RabbitMQ an.
magento-cloud environment:checkout <environment-id>
-
SSH verwenden, um eine Verbindung zur Cloud-Umgebung herzustellen:
magento-cloud ssh
-
Rufen Sie die RabbitMQ-Verbindungsdetails und Anmeldedaten aus der Variablen $MAGENTO_CLOUD_RELATIONSHIPS ab:
echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
oder
php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"])));'
Suchen Sie in der Antwort die RabbitMQ-Informationen, z. B.:
{ "rabbitmq" : [ { "password" : "guest", "ip" : "246.0.129.2", "scheme" : "amqp", "port" : 5672, "host" : "rabbitmq.internal", "username" : "guest" } ] }
-
Aktivieren der lokalen Port-Weiterleitung an RabbitMQ (wenn sich Ihr Projekt in einer anderen Region befindet, z. B. in der US-3-, der EU-5- oder der AP-3-Region, ersetzen Sie
us
durchus-3
/eu-5
/ap-3
)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-Verwaltungs-Web-Oberfläche unter
http://localhost:15672
: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 mit Ihrer PHP-Anwendung eine Verbindung zu RabbitMQ herzustellen, fügen Sie Ihrer Quellstruktur eine PHP-Bibliothek hinzu.