Configurar o serviço RabbitMQ

O MQF (Estrutura da Fila de Mensagens) é um sistema do Adobe Commerce que permite que um módulo publique mensagens em filas. Também define os consumidores que recebem as mensagens de forma assíncrona.

O MQF usa o RabbitMQ como agente de mensagens, o que fornece uma plataforma escalável para enviar e receber mensagens. Também inclui um mecanismo para armazenar mensagens não entregues. RabbitMQ é baseado na especificação AMQP (Advanced Message Queuing Protocol) 0.9.1.

WARNING
Se preferir usar um serviço existente baseado em AMQP, como o RabbitMQ, em vez de depender da Adobe Commerce na infraestrutura de nuvem para criá-lo para você, use a variável de ambiente QUEUE_CONFIGURATION para conectá-lo ao seu site.

Use as instruções a seguir para a configuração do serviço em ambientes Pro Integration e Starter, incluindo a ramificação master.

NOTE
Envie um tíquete de Suporte da Adobe Commerce para alterar a configuração do serviço em ambientes de Produção e Preparo Profissionais.

Para habilitar o RabbitMQ:

  1. Adicione o nome, o tipo e o valor de disco necessários (em MB) ao arquivo .magento/services.yaml, juntamente com a versão do RabbitMQ instalada.

    code language-yaml
    rabbitmq:
        type: rabbitmq:<version>
        disk: 1024
    
  2. Configure as relações no arquivo .magento.app.yaml.

    code language-yaml
    relationships:
        rabbitmq: "rabbitmq:rabbitmq"
    
  3. Adicionar, confirmar e enviar por push as alterações 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. Verifique as relações de serviço.

TIP
Após a configuração inicial do serviço, você pode alterar a versão do software de um serviço instalado atualizando os arquivos de configuração services.yaml e .magento.app.yaml. Consulte Alterar versão de serviço para obter orientação sobre como atualizar ou rebaixar um serviço.

Conectar-se ao RabbitMQ para depuração

Para fins de depuração, é útil se conectar diretamente a uma instância de serviço de uma das seguintes maneiras:

  • Conectar-se a partir do ambiente de desenvolvimento local
  • Conectar a partir do aplicativo
  • Conectar a partir do aplicativo PHP

Conectar-se a partir do ambiente de desenvolvimento local

  1. Faça logon na CLI do magento-cloud e no projeto:

    code language-bash
    magento-cloud login
    
  2. Confira o ambiente com o RabbitMQ instalado e configurado.

    code language-bash
    magento-cloud environment:checkout <environment-id>
    
  3. Usar SSH para se conectar ao ambiente de nuvem:

    code language-bash
    magento-cloud ssh
    
  4. Recupere os detalhes de conexão da RabbitMQ e as credenciais de logon da variável $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"])));'
    

    Na resposta, localize as informações do RabbitMQ, por exemplo:

    code language-json
    {
       "rabbitmq" : [
          {
             "password" : "guest",
             "ip" : "246.0.129.2",
             "scheme" : "amqp",
             "port" : 5672,
             "host" : "rabbitmq.internal",
             "username" : "guest"
          }
       ]
    }
    
  5. Habilitar o encaminhamento de porta local para a RabbitMQ (se o projeto estiver localizado em uma região diferente, como US-3, EU-5 ou AP-3, substitua us-3/eu-5/ap-3 por us)

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

    Um exemplo de acesso à interface da Web de gerenciamento do RabbitMQ em http://localhost:15672 é:

    code language-bash
    ssh -L 15672:rabbitmq.internal:15672 <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
    
  6. Enquanto a sessão estiver aberta, você poderá iniciar um cliente RabbitMQ de sua escolha na estação de trabalho local, configurada para se conectar ao localhost:<portnumber> usando as informações de número da porta, nome de usuário e senha da variável MAGENTO_CLOUD_RELATIONSHIPS.

Conectar a partir do aplicativo

Para se conectar ao RabbitMQ em execução em um aplicativo, instale um cliente, como amqp-utils, como uma dependência de projeto no arquivo .magento.app.yaml.

Por exemplo,

dependencies:
    ruby:
        amqp-utils: "0.5.1"

Ao fazer logon no contêiner PHP, digite qualquer comando amqp- disponível para gerenciar suas filas.

Conectar a partir do aplicativo PHP

Para conectar-se ao RabbitMQ usando seu aplicativo PHP, adicione uma biblioteca PHP à árvore de origem.

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