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.
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
.
Para habilitar o RabbitMQ:
-
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
-
Configure as relações no arquivo
.magento.app.yaml
.code language-yaml relationships: rabbitmq: "rabbitmq:rabbitmq"
-
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>
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
-
Faça logon na CLI do
magento-cloud
e no projeto:code language-bash magento-cloud login
-
Confira o ambiente com o RabbitMQ instalado e configurado.
code language-bash magento-cloud environment:checkout <environment-id>
-
Usar SSH para se conectar ao ambiente de nuvem:
code language-bash magento-cloud ssh
-
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" } ] }
-
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
porus
)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
-
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 do PHP à sua árvore de origem.