Configuration du service RabbitMQ

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

MQF utilise RabbitMQ comme courtier de messagerie, qui fournit une plateforme évolutive pour envoyer et recevoir des 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 une infrastructure cloud pour le créer, utilisez la variable d’environnement QUEUE_CONFIGURATION pour le connecter à votre site.

Utilisez les instructions suivantes pour la configuration du service sur les environnements Pro Integration et les environnements de démarrage, 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 Pro.

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. Ajouter, valider et transmettre 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érifier les relations de service.

TIP
Après la configuration initiale du service, vous pouvez modifier la version du logiciel d’un service installé en mettant à jour les fichiers de configuration services.yaml et .magento.app.yaml. Consultez Modifier la version du service pour obtenir des conseils sur la mise à niveau ou la rétrogradation 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 à partir de votre environnement de développement local
  • Connexion depuis l'application
  • Connexion depuis votre application PHP

Connexion à partir de votre environnement de développement local

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

    code language-bash
    magento-cloud login
    
  2. Consultez l’environnement avec RabbitMQ 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 détails 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 du port local vers RabbitMQ (si votre projet est situé dans une autre région telle que US-3, EU-5 ou AP-3, remplacez us par 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
    

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

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

Connexion depuis 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 container PHP, vous entrez n'importe quelle commande amqp- disponible pour gérer vos files d'attente.

Connexion depuis votre application PHP

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

recommendation-more-help
7c2b03ac-000c-497d-aba3-2c6dc720a938