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.
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
.
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"
-
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>
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
-
Connectez-vous à l’interface de ligne de commande et au projet
magento-cloud
:code language-bash magento-cloud login
-
Extrayez l’environnement sur lequel RabbitMQ est 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 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" } ] }
-
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
parus
).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
-
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.