Konfigurera tjänsten RabbitMQ
MQF (Message Queue Framework) är ett system i Adobe Commerce som tillåter en modul att publicera meddelanden till köer. Det definierar också de konsumenter som tar emot meddelandena asynkront.
MQF använder RabbitMQ som meddelandeförmedlare, som tillhandahåller en skalbar plattform för att skicka och ta emot meddelanden. Den innehåller även en mekanism för att lagra olevererade meddelanden. RabbitMQ baseras på specifikationen Advanced Message Queuing Protocol (AMQP) 0.9.1.
QUEUE_CONFIGURATION
för att ansluta den till webbplatsen.Använd följande instruktioner för tjänstkonfiguration i Pro Integration-miljöer och Starter-miljöer, inklusive grenen master
.
Aktivera RabbitMQ:
-
Lägg till det namn, den typ och det diskvärde som krävs (i MB) till filen
.magento/services.yaml
tillsammans med den installerade RabbitMQ-versionen.code language-yaml rabbitmq: type: rabbitmq:<version> disk: 1024
-
Konfigurera relationerna i filen
.magento.app.yaml
.code language-yaml relationships: rabbitmq: "rabbitmq:rabbitmq"
-
Lägg till, implementera och push-överföra kodändringar.
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
och .magento.app.yaml
. Mer information om hur du uppgraderar eller nedgraderar en tjänst finns i Ändra tjänstversion.Anslut till RabbitMQ för felsökning
I felsökningssyfte är det praktiskt att ansluta direkt till en tjänstinstans på något av följande sätt:
- Anslut från din lokala utvecklingsmiljö
- Anslut från programmet
- Anslut från ditt PHP-program
Anslut från din lokala utvecklingsmiljö
-
Logga in på CLI och projekt för
magento-cloud
:code language-bash magento-cloud login
-
Kolla in miljön med RabbitMQ installerat och konfigurerat.
code language-bash magento-cloud environment:checkout <environment-id>
-
Använd SSH för att ansluta till molnmiljön:
code language-bash magento-cloud ssh
-
Hämta RabbitMQ-anslutningsinformation och inloggningsuppgifter från variabeln $MAGENTO_CLOUD_RELATIONSHIPS:
code language-bash echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
eller
code language-bash php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"])));'
I svaret hittar du information om RabbitMQ, till exempel:
code language-json { "rabbitmq" : [ { "password" : "guest", "ip" : "246.0.129.2", "scheme" : "amqp", "port" : 5672, "host" : "rabbitmq.internal", "username" : "guest" } ] }
-
Aktivera lokal portvidarebefordran till RabbitMQ (om ditt projekt finns i en annan region, till exempel USA-3, EU-5 eller AP-3-region, ersätt
us-3
/eu-5
/ap-3
förus
)code language-bash ssh -L <port-number>:rabbitmq.internal:<port-number> <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
Ett exempel på hur du får åtkomst till webbgränssnittet för RabbitMQ-hantering på
http://localhost:15672
är:code language-bash ssh -L 15672:rabbitmq.internal:15672 <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
-
När sessionen är öppen kan du starta en valfri RabbitMQ-klient från den lokala arbetsstationen som konfigurerats för att ansluta till
localhost:<portnumber>
med hjälp av portnummer, användarnamn och lösenordsinformation från variabeln MAGENTO_CLOUD_RELATIONSHIPS.
Anslut från programmet
Om du vill ansluta till RabbitMQ som körs i ett program installerar du en klient, till exempel amqp-utils, som ett projektberoende i .magento.app.yaml
-filen.
Exempel:
dependencies:
ruby:
amqp-utils: "0.5.1"
När du loggar in på PHP-behållaren anger du ett amqp-
-kommando som är tillgängligt för att hantera köerna.
Anslut från ditt PHP-program
Om du vill ansluta till RabbitMQ med ditt PHP-program lägger du till ett PHP-bibliotek i källträdet.