Configurar el servicio RabbitMQ
Message Queue Framework (MQF) es un sistema de Adobe Commerce que permite que un módulo publique mensajes en colas. También define los consumidores que reciben los mensajes de forma asincrónica.
El MQF usa RabbitMQ como agente de mensajería, que proporciona una plataforma escalable para enviar y recibir mensajes. También incluye un mecanismo para almacenar mensajes no enviados. RabbitMQ se basa en la especificación 0.9.1 del Protocolo avanzado de Message Queue Server (AMQP).
QUEUE_CONFIGURATION
para conectarlo a su sitio.Siga estas instrucciones para la configuración del servicio en entornos de integración profesional y entornos de inicio, incluida la rama master
.
Para habilitar RabbitMQ:
-
Agregue el nombre, tipo y valor de disco necesarios (en MB) al archivo
.magento/services.yaml
junto con la versión de RabbitMQ instalada.code language-yaml rabbitmq: type: rabbitmq:<version> disk: 1024
-
Configure las relaciones en el archivo
.magento.app.yaml
.code language-yaml relationships: rabbitmq: "rabbitmq:rabbitmq"
-
Agregue, confirme e inserte los cambios de código.
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
y .magento.app.yaml
. Consulte Cambiar la versión del servicio para obtener instrucciones sobre cómo actualizar o degradar un servicio.Conectarse a RabbitMQ para depurar
Para fines de depuración, es útil conectarse directamente a una instancia de servicio de una de las siguientes maneras:
- Conéctese desde su entorno de desarrollo local
- Conectar desde la aplicación
- Conéctese desde su aplicación PHP
Conéctese desde su entorno de desarrollo local
-
Inicie sesión en la CLI de
magento-cloud
y el proyecto:code language-bash magento-cloud login
-
Compruebe el entorno con RabbitMQ instalado y configurado.
code language-bash magento-cloud environment:checkout <environment-id>
-
Utilice SSH para conectarse al entorno de la nube:
code language-bash magento-cloud ssh
-
Recupere los detalles de conexión de RabbitMQ y las credenciales de inicio de sesión de la variable $MAGENTO_CLOUD_RELATIONSHIPS:
code language-bash echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
o
code language-bash php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"])));'
En la respuesta, busque la información de RabbitMQ, por ejemplo:
code language-json { "rabbitmq" : [ { "password" : "guest", "ip" : "246.0.129.2", "scheme" : "amqp", "port" : 5672, "host" : "rabbitmq.internal", "username" : "guest" } ] }
-
Habilite el reenvío de puertos locales a RabbitMQ (si su proyecto se encuentra en una región diferente, como la región US-3, EU-5 o AP-3, sustituya
us-3
/eu-5
/ap-3
porus
)code language-bash ssh -L <port-number>:rabbitmq.internal:<port-number> <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
Un ejemplo de acceso a la interfaz web de administración de RabbitMQ en
http://localhost:15672
es:code language-bash ssh -L 15672:rabbitmq.internal:15672 <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
-
Mientras la sesión está abierta, puede iniciar un cliente de RabbitMQ de su elección desde la estación de trabajo local, configurado para conectarse a
localhost:<portnumber>
mediante el número de puerto, el nombre de usuario y la información de contraseña de la variable MAGENTO_CLOUD_RELATIONSHIPS.
Conectar desde la aplicación
Para conectarse a RabbitMQ que se ejecuta en una aplicación, instale un cliente, como amqp-utils, como dependencia de proyecto en el archivo .magento.app.yaml
.
Por ejemplo,
dependencies:
ruby:
amqp-utils: "0.5.1"
Cuando inicia sesión en su contenedor de PHP, ingresa cualquier comando amqp-
disponible para administrar las colas.
Conéctese desde su aplicación PHP
Para conectarse a RabbitMQ usando su aplicación PHP, agregue una biblioteca PHP a su árbol de fuentes.