DocumentaciónCommerceGuía de Commerce en la nube

Solo PaaS

Configurar el servicio RabbitMQ

Última actualización: 5 de mayo de 2025
  • 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).

WARNING
Si prefiere usar un servicio basado en AMQP existente, como RabbitMQ, en lugar de depender de Adobe Commerce en la infraestructura en la nube para crearlo, use la variable de entorno 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.

NOTE
Envíe un ticket de soporte de Adobe Commerce para cambiar la configuración del servicio en los entornos de ensayo y producción de Pro.

Para habilitar RabbitMQ:

  1. 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
    
  2. Configure las relaciones en el archivo .magento.app.yaml.

    relationships:
        rabbitmq: "rabbitmq:rabbitmq"
    
  3. 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>
    
  4. Compruebe las relaciones de servicio.

TIP
Después de la instalación inicial del servicio, puede cambiar la versión del software de un servicio instalado actualizando los archivos de configuración 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

  1. Inicie sesión en la CLI de magento-cloud y el proyecto:

    magento-cloud login
    
  2. Compruebe el entorno con RabbitMQ instalado y configurado.

    magento-cloud environment:checkout <environment-id>
    
  3. Utilice SSH para conectarse al entorno de la nube:

    magento-cloud ssh
    
  4. 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"
          }
       ]
    }
    
  5. 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 por us)

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

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