Konfigurera tjänsten RabbitMQ

MQF (Message Queue Framework) är ett system i Adobe Commerce som tillåter en modul att publicera meddelanden till köer. Det definierar också de konsumenter som tar emot meddelandena asynkront.

MQF använder RabbitMQ som meddelandeförmedlare, som tillhandahåller en skalbar plattform för att skicka och ta emot meddelanden. Den innehåller även en mekanism för att lagra olevererade meddelanden. RabbitMQ baseras på specifikationen Advanced Message Queuing Protocol (AMQP) 0.9.1.

WARNING
Om du föredrar att använda en befintlig AMQP-baserad tjänst, som RabbitMQ, i stället för att förlita dig på Adobe Commerce i molninfrastrukturen för att skapa den åt dig, använder du miljövariabeln QUEUE_CONFIGURATION för att ansluta den till webbplatsen.

Använd följande instruktioner för tjänstkonfiguration i Pro Integration-miljöer och Starter-miljöer, inklusive grenen master.

NOTE
Skicka en Adobe Commerce-supportanmälan om du vill ändra tjänstkonfigurationen i Pro Production- och mellanlagringsmiljöer.

Aktivera RabbitMQ:

  1. Lägg till det namn, den typ och det diskvärde som krävs (i MB) till filen .magento/services.yaml tillsammans med den installerade RabbitMQ-versionen.

    code language-yaml
    rabbitmq:
        type: rabbitmq:<version>
        disk: 1024
    
  2. Konfigurera relationerna i filen .magento.app.yaml.

    code language-yaml
    relationships:
        rabbitmq: "rabbitmq:rabbitmq"
    
  3. Lägg till, implementera och push-överföra kodändringar.

    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. Verifiera tjänstrelationerna.

TIP
Efter den första konfigurationen av tjänsten kan du ändra programversionen för en installerad tjänst genom att uppdatera konfigurationsfilerna för services.yaml och .magento.app.yaml. Mer information om hur du uppgraderar eller nedgraderar en tjänst finns i Ändra tjänstversion.

Anslut till RabbitMQ för felsökning

I felsökningssyfte är det praktiskt att ansluta direkt till en tjänstinstans på något av följande sätt:

  • Anslut från din lokala utvecklingsmiljö
  • Anslut från programmet
  • Anslut från ditt PHP-program

Anslut från din lokala utvecklingsmiljö

  1. Logga in på CLI och projekt för magento-cloud:

    code language-bash
    magento-cloud login
    
  2. Kolla in miljön med RabbitMQ installerat och konfigurerat.

    code language-bash
    magento-cloud environment:checkout <environment-id>
    
  3. Använd SSH för att ansluta till molnmiljön:

    code language-bash
    magento-cloud ssh
    
  4. Hämta RabbitMQ-anslutningsinformation och inloggningsuppgifter från variabeln $MAGENTO_CLOUD_RELATIONSHIPS:

    code language-bash
    echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
    

    eller

    code language-bash
    php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"])));'
    

    I svaret hittar du information om RabbitMQ, till exempel:

    code language-json
    {
       "rabbitmq" : [
          {
             "password" : "guest",
             "ip" : "246.0.129.2",
             "scheme" : "amqp",
             "port" : 5672,
             "host" : "rabbitmq.internal",
             "username" : "guest"
          }
       ]
    }
    
  5. Aktivera lokal portvidarebefordran till RabbitMQ (om ditt projekt finns i en annan region, till exempel USA-3, EU-5 eller AP-3-region, ersätt us-3/eu-5/ap-3 för us)

    code language-bash
    ssh -L <port-number>:rabbitmq.internal:<port-number> <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
    

    Ett exempel på hur du får åtkomst till webbgränssnittet för RabbitMQ-hantering på http://localhost:15672 är:

    code language-bash
    ssh -L 15672:rabbitmq.internal:15672 <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
    
  6. När sessionen är öppen kan du starta en valfri RabbitMQ-klient från den lokala arbetsstationen som konfigurerats för att ansluta till localhost:<portnumber> med hjälp av portnummer, användarnamn och lösenordsinformation från variabeln MAGENTO_CLOUD_RELATIONSHIPS.

Anslut från programmet

Om du vill ansluta till RabbitMQ som körs i ett program installerar du en klient, till exempel amqp-utils, som ett projektberoende i .magento.app.yaml-filen.

Exempel:

dependencies:
    ruby:
        amqp-utils: "0.5.1"

När du loggar in på PHP-behållaren anger du ett amqp--kommando som är tillgängligt för att hantera köerna.

Anslut från ditt PHP-program

Om du vill ansluta till RabbitMQ med ditt PHP-program lägger du till ett PHP bibliotek i källträdet.

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