[Nur PaaS]{class="badge informative" title="Gilt nur für Adobe Commerce in Cloud-Projekten (von Adobe verwaltete PaaS-Infrastruktur) und lokale Projekte."}

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 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.

    code language-yaml
    rabbitmq:
        type: rabbitmq:<version>
        disk: 1024
    
  2. Konfigurieren Sie die Beziehungen in der .magento.app.yaml.

    code language-yaml
    relationships:
        rabbitmq: "rabbitmq:rabbitmq"
    
  3. 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>
    
  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:

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

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

    code language-bash
    magento-cloud ssh
    
  4. Rufen Sie die RabbitMQ-Verbindungsdetails und Anmeldedaten aus der Variablen $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, z. B.:

    code language-json
    {
       "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)

    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-Verwaltungs-Web-Oberfläche unter http://localhost:15672:

    code language-bash
    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