Einrichten RabbitMQ service

Die Message Queue Framework (MQF) ist ein System in Adobe Commerce, das Folgendes ermöglicht: Modul , um 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 für den Versand und Empfang 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).

WARNING
Wenn Sie einen vorhandenen AMQP-basierten Dienst bevorzugen, z. B. RabbitMQVerwenden Sie anstelle von Adobe Commerce für die Cloud-Infrastruktur, um sie für Sie zu erstellen, die QUEUE_CONFIGURATION Umgebungsvariable, um sie mit Ihrer Site zu verbinden.

Verwenden Sie die folgenden Anweisungen für die Diensteinrichtung in Pro Integration-Umgebungen und Starter-Umgebungen, einschließlich der master -Verzweigung.

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

So aktivieren Sie RabbitMQ:

  1. Fügen Sie den erforderlichen Namen, Typ und Festplattenwert (in MB) zum .magento/services.yaml zusammen mit der installierten RabbitMQ-Version.

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

    code language-yaml
    relationships:
        rabbitmq: "rabbitmq:rabbitmq"
    
  3. 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>
    
  4. Überprüfen der Dienstbeziehungen.

TIP
Nach der Ersteinrichtung des Dienstes können Sie die Softwareversion für einen installierten Dienst ändern, indem Sie die services.yaml und .magento.app.yaml Konfigurationsdateien. Siehe Dienstversion ändern für Anleitungen zum Upgrade oder Downgrade eines Dienstes.

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

  1. Melden Sie sich bei magento-cloud CLI und Projekt:

    code language-bash
    magento-cloud login
    
  2. Sehen Sie sich die Umgebung an, in der RabbitMQ installiert und konfiguriert ist.

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

    code language-bash
    magento-cloud ssh
    
  4. Rufen Sie die RabbitMQ-Verbindungsdetails und Anmeldedaten aus dem $MAGENTO_CLOUD_RELATIONSHIPS Variable:

    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"
          }
       ]
    }
    
  5. Aktivieren Sie die lokale Anschlussweiterleitung zu RabbitMQ.

    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 ist:

    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 von Ihrer lokalen Workstation aus einen RabbitMQ-Client Ihrer Wahl starten, der für die Verbindung mit dem localhost:<portnumber> unter Verwendung der Portnummer, des Benutzernamens und 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-utilsals Projektabhängigkeit in Ihrer .magento.app.yaml -Datei.

Beispiel:

dependencies:
    ruby:
        amqp-utils: "0.5.1"

Wenn Sie sich in Ihrem PHP-Container anmelden, geben Sie amqp- zur Verwaltung Ihrer Warteschlangen verfügbar.

Verbinden über eine PHP-Anwendung

Um mit Ihrer PHP-Anwendung eine Verbindung zu RabbitMQ herzustellen, fügen Sie ein PHP hinzu Bibliothek in Ihren Quellbaum.

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26