Configuración de RabbitMQ servicio

El Marco de cola de mensajes (MQF) es un sistema de Adobe Commerce que permite módulo para publicar mensajes en colas. También define los consumidores que reciben los mensajes de forma asincrónica.

El MQF utiliza 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 utilizar un servicio basado en AMQP existente, como RabbitMQ, en lugar de depender de Adobe Commerce en la infraestructura de la nube para crearla, utilice el QUEUE_CONFIGURATION para conectarla al sitio.

Siga estas instrucciones para la configuración del servicio en entornos de integración profesional y entornos de inicio, incluido el master Rama.

NOTE
Enviar un ticket de asistencia de Adobe Commerce para cambiar la configuración del servicio en entornos de ensayo y producción profesional.

Para habilitar RabbitMQ:

  1. Agregue el nombre, tipo y valor de disco necesarios (en MB) a .magento/services.yaml junto con la versión de RabbitMQ instalada.

    code language-yaml
    rabbitmq:
        type: rabbitmq:<version>
        disk: 1024
    
  2. Configure las relaciones en la variable .magento.app.yaml archivo.

    code language-yaml
    relationships:
        rabbitmq: "rabbitmq:rabbitmq"
    
  3. 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>
    
  4. Verificar 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 el services.yaml y .magento.app.yaml archivos de configuración. 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 magento-cloud CLI y proyecto:

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

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

    code language-bash
    magento-cloud ssh
    
  4. Recupere los detalles de conexión de RabbitMQ y las credenciales de inicio de sesión desde el $MAGENTO_CLOUD_RELATIONSHIPS variable:

    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"
          }
       ]
    }
    
  5. Habilite el reenvío de puertos locales a RabbitMQ.

    code language-bash
    ssh -L <port-number>:rabbitmq.internal:<port-number> <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
    

    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
    
  6. Mientras la sesión está abierta, puede iniciar un cliente de RabbitMQ de su elección desde la estación de trabajo local, configurada para conectarse a localhost:<portnumber> usando la información de número de puerto, nombre de usuario y contraseña de la variable MAGENTO_CLOUD_RELATIONSHIPS.

Conectar desde la aplicación

Para conectarse a RabbitMQ que se ejecute en una aplicación, instale un cliente de, como amqp-utils, como dependencia del proyecto en su .magento.app.yaml archivo.

Por ejemplo,

dependencies:
    ruby:
        amqp-utils: "0.5.1"

Al iniciar sesión en su contenedor de PHP, debe introducir cualquier amqp- disponible para administrar las colas.

Conéctese desde su aplicación PHP

Para conectarse a RabbitMQ usando su aplicación PHP, agregue un PHP biblioteca al árbol de origen.

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26