Configurar el servicio RabbitMQ
- Temas:
- Nube
Creado para:
- Administrador
- Desarrollador
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.rabbitmq: type: rabbitmq:<version> disk: 1024
-
Configure las relaciones en el archivo
.magento.app.yaml
.relationships: rabbitmq: "rabbitmq:rabbitmq"
-
Agregue, confirme e inserte los cambios de código.
git add .magento/services.yaml .magento.app.yaml
git commit -m "Enable RabbitMQ service"
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:magento-cloud login
-
Compruebe el entorno con RabbitMQ instalado y configurado.
magento-cloud environment:checkout <environment-id>
-
Utilice SSH para conectarse al entorno de la nube:
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:
echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
o
php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"])));'
En la respuesta, busque la información de RabbitMQ, por ejemplo:
{ "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
)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: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.