Configuration du service RabbitMQ

Message Queue Framework (MQF) est un système d’Adobe Commerce qui permet à un module de publier des messages dans les files d’attente. Il définit également les consommateurs qui reçoivent les messages de manière asynchrone.

Le MQF utilise RabbitMQ comme courtier de messagerie, qui fournit une plateforme évolutive pour l’envoi et la réception de messages. Il comprend également un mécanisme de stockage des messages non diffusés. RabbitMQ est basé sur la spécification AMQP (Advanced Message Queuing Protocol) 0.9.1.

WARNING
Si vous préférez utiliser un service basé sur AMQP existant, comme RabbitMQ, au lieu de vous fier à Adobe Commerce sur l’infrastructure cloud pour le créer pour vous, utilisez la variable d’environnement QUEUE_CONFIGURATION pour la connecter à votre site.

Suivez les instructions suivantes pour la configuration du service dans les environnements Pro Integration et les environnements Starter, y compris la branche master.

NOTE
Envoyez un ticket d’assistance Adobe Commerce pour modifier la configuration du service dans les environnements de production et d’évaluation.

Pour activer RabbitMQ :

  1. Ajoutez le nom, le type et la valeur de disque requis (en Mo) au fichier .magento/services.yaml avec la version RabbitMQ installée.

    code language-yaml
    rabbitmq:
        type: rabbitmq:<version>
        disk: 1024
    
  2. Configurez les relations dans le fichier .magento.app.yaml.

    code language-yaml
    relationships:
        rabbitmq: "rabbitmq:rabbitmq"
    
  3. Ajoutez, validez et poussez vos modifications de code.

    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. Vérifiez les relations de service.

TIP
Après la configuration initiale du service, vous pouvez modifier la version logicielle d'un service installé en mettant à jour les fichiers de configuration services.yaml et .magento.app.yaml. Voir Modification de la version de service pour obtenir des conseils sur la mise à niveau ou la mise à niveau d’un service.

Connexion à RabbitMQ pour le débogage

À des fins de débogage, il est utile de se connecter directement à une instance de service de l’une des manières suivantes :

  • Connexion à votre environnement de développement local
  • Connexion à partir de l’application
  • Connexion à partir de votre application PHP

Connexion à votre environnement de développement local

  1. Connectez-vous à l’interface de ligne de commande et au projet magento-cloud :

    code language-bash
    magento-cloud login
    
  2. Extrayez l’environnement sur lequel RabbitMQ est installé et configuré.

    code language-bash
    magento-cloud environment:checkout <environment-id>
    
  3. Utilisez SSH pour vous connecter à l’environnement cloud :

    code language-bash
    magento-cloud ssh
    
  4. Récupérez les informations de connexion et les informations d’identification de connexion RabbitMQ à partir de la variable $MAGENTO_CLOUD_RELATIONSHIPS :

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

    ou

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

    Dans la réponse, recherchez les informations RabbitMQ, par exemple :

    code language-json
    {
       "rabbitmq" : [
          {
             "password" : "guest",
             "ip" : "246.0.129.2",
             "scheme" : "amqp",
             "port" : 5672,
             "host" : "rabbitmq.internal",
             "username" : "guest"
          }
       ]
    }
    
  5. Activez le transfert de port local vers RabbitMQ (si votre projet se trouve dans une autre région, par exemple, US-3, EU-5 ou AP-3, remplacez us-3/eu-5/ap-3 par us).

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

    Voici un exemple d’accès à l’interface web de gestion RabbitMQ à l’adresse http://localhost:15672 :

    code language-bash
    ssh -L 15672:rabbitmq.internal:15672 <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
    
  6. Pendant que la session est ouverte, vous pouvez démarrer un client RabbitMQ de votre choix à partir de votre poste de travail local, configuré pour vous connecter à localhost:<portnumber> à l’aide du numéro de port, du nom d’utilisateur et des informations de mot de passe de la variable MAGENTO_CLOUD_RELATIONSHIPS.

Connexion à partir de l’application

Pour vous connecter à RabbitMQ s’exécutant dans une application, installez un client, tel que amqp-utils, en tant que dépendance de projet dans votre fichier .magento.app.yaml.

Par exemple,

dependencies:
    ruby:
        amqp-utils: "0.5.1"

Lorsque vous vous connectez à votre conteneur PHP, vous saisissez toute commande amqp- disponible pour gérer vos files d’attente.

Connexion à partir de votre application PHP

Pour vous connecter à RabbitMQ à l’aide de votre application PHP, ajoutez une bibliothèque PHP à votre arborescence source.

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