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.
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
.
Pour activer RabbitMQ :
-
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
-
Configurez les relations dans le fichier
.magento.app.yaml
.code language-yaml relationships: rabbitmq: "rabbitmq:rabbitmq"
-
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>
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
-
Connectez-vous à l’interface de ligne de commande
magento-cloud
et au projet :code language-bash magento-cloud login
-
Consultez l’environnement avec RabbitMQ installé et configuré.
code language-bash magento-cloud environment:checkout <environment-id>
-
Utilisez SSH pour vous connecter à l’environnement cloud :
code language-bash magento-cloud ssh
-
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" } ] }
-
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
parus-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
-
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.