Instellen RabbitMQ service

De Het Kader van de Rij van het bericht (MQF) is een systeem in Adobe Commerce dat een module om berichten aan rijen te publiceren. Het bepaalt ook de consumenten die de berichten asynchroon ontvangen.

Het MQF-gebruik RabbitMQ als overseinenmakelaar, die een scalable platform voor het verzenden van en het ontvangen van berichten verstrekt. Het omvat ook een mechanisme voor het opslaan van niet-geleverde berichten. RabbitMQ is gebaseerd op de Geavanceerde specificatie 0.9.1 van het Protocol van de Een rij vormen van het Bericht (AMQP).

WARNING
Als u liever een bestaande AMQP-service gebruikt, zoals RabbitMQin plaats van op Adobe Commerce te vertrouwen op cloudinfrastructuur om deze voor u te maken, kunt u de QUEUE_CONFIGURATION omgevingsvariabele om deze aan te sluiten op uw site.

Gebruik de volgende instructies voor de dienstopstelling op de milieu's van de Integratie Pro en van de Starter milieu's, met inbegrip van master vertakking.

NOTE
Een Adobe Commerce-ondersteuningsticket verzenden om de de dienstconfiguratie op ProProductie en het Opvoeren milieu's te veranderen.

RabbitMQ inschakelen:

  1. Voeg de vereiste naam, het type en de schijfwaarde (in MB) toe aan de .magento/services.yaml samen met de geïnstalleerde versie van RabbitMQ.

    code language-yaml
    rabbitmq:
        type: rabbitmq:<version>
        disk: 1024
    
  2. Configureer de relaties in de .magento.app.yaml bestand.

    code language-yaml
    relationships:
        rabbitmq: "rabbitmq:rabbitmq"
    
  3. U kunt wijzigingen in de code toevoegen, doorvoeren en doorvoeren.

    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. Verifieer de de dienstverhoudingen.

TIP
Nadat u de service hebt ingesteld, kunt u de softwareversie van een geïnstalleerde service wijzigen door het services.yaml en .magento.app.yaml configuratiebestanden. Zie Serviceversie wijzigen richtsnoeren voor de verbetering of inkrimping van een dienst.

Verbinding maken met RabbitMQ voor foutopsporing

Voor het zuiveren doeleinden, is het nuttig om met een de dienstinstantie op één van de volgende manieren direct te verbinden:

  • Verbinding maken met uw lokale ontwikkelomgeving
  • Verbinding maken vanuit de toepassing
  • Verbinding maken met uw PHP-toepassing

Verbinding maken met uw lokale ontwikkelomgeving

  1. Aanmelden bij de magento-cloud CLI en project:

    code language-bash
    magento-cloud login
    
  2. Ontdek de omgeving met RabbitMQ geïnstalleerd en geconfigureerd.

    code language-bash
    magento-cloud environment:checkout <environment-id>
    
  3. SSH gebruiken om verbinding te maken met de cloud-omgeving:

    code language-bash
    magento-cloud ssh
    
  4. Haal de gegevens van de RabbitMQ-verbinding en aanmeldingsgegevens op via $MAGENTO_CLOUD_RELATIONSHIPS variabele:

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

    of

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

    In het antwoord vindt u bijvoorbeeld de RabbitMQ-informatie:

    code language-json
    {
       "rabbitmq" : [
          {
             "password" : "guest",
             "ip" : "246.0.129.2",
             "scheme" : "amqp",
             "port" : 5672,
             "host" : "rabbitmq.internal",
             "username" : "guest"
          }
       ]
    }
    
  5. Laat lokale haven toe door:sturen aan RabbitMQ (als uw project op een verschillend gebied zoals V.S.-3, EU-5, of AP-3 gebied wordt gevestigd, substitueer us-3/eu-5/ap-3 for us)

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

    Een voorbeeld voor toegang tot de RabbitMQ Management Web Interface op http://localhost:15672 is:

    code language-bash
    ssh -L 15672:rabbitmq.internal:15672 <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
    
  6. Terwijl de sessie geopend is, kunt u een RabbitMQ-client naar keuze starten vanaf uw lokale werkstation, geconfigureerd om verbinding te maken met de localhost:<portnumber> het gebruiken van het havenaantal, gebruikersbenaming, en wachtwoordinformatie van de MAGENTO_CLOUD_RELATIONSHIPS variabele.

Verbinding maken vanuit de toepassing

Als u verbinding wilt maken met RabbitMQ die wordt uitgevoerd in een toepassing, installeert u een client, zoals amqp-utils, als projectafhankelijkheid in uw .magento.app.yaml bestand.

Bijvoorbeeld:

dependencies:
    ruby:
        amqp-utils: "0.5.1"

Wanneer u zich aanmeldt bij uw PHP-container, voert u een amqp- beschikbaar om uw rijen te beheren.

Verbinding maken met uw PHP-toepassing

Als u verbinding wilt maken met RabbitMQ via uw PHP-toepassing, voegt u een PHP toe bibliotheek naar de bronstructuur.

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