DokumentationCommerceHandbuch zu Commerce für Cloud

Nur PaaS

Einrichten RabbitMQ Services

Letzte Aktualisierung: 5. Mai 2025
  • 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.

WARNING
Wenn Sie es vorziehen, einen bestehenden AMQP-basierten Service wie RabbitMQ zu verwenden, anstatt sich bei seiner Erstellung auf die Cloud-Infrastruktur von Adobe Commerce zu verlassen, verwenden Sie die 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.

NOTE
Senden eines Adobe Commerce Support-Tickets um die Service-Konfiguration in Pro-Produktions- und Staging-Umgebungen zu ändern.

So aktivieren Sie RabbitMQ:

  1. 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
    
  2. Konfigurieren Sie die Beziehungen in der .magento.app.yaml.

    relationships:
        rabbitmq: "rabbitmq:rabbitmq"
    
  3. 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>
    
  4. Überprüfen Sie die Service-Beziehungen.

TIP
Nach der Ersteinrichtung des Service können Sie die Softwareversion für einen installierten Service ändern, indem Sie die 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

  1. Melden Sie sich bei der magento-cloud CLI an und führen Sie folgendes Projekt aus:

    magento-cloud login
    
  2. Sehen Sie sich die Umgebung mit installiertem und konfiguriertem RabbitMQ an.

    magento-cloud environment:checkout <environment-id>
    
  3. SSH verwenden, um eine Verbindung zur Cloud-Umgebung herzustellen:

    magento-cloud ssh
    
  4. 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"
          }
       ]
    }
    
  5. 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 durch us-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
    
  6. 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.

recommendation-more-help
7c2b03ac-000c-497d-aba3-2c6dc720a938