RabbitMQ -service instellen
Het Kader van de Rij van het Bericht (MQF) is een systeem binnen Adobe Commerce dat a module toestaat om berichten aan rijen te publiceren. Het bepaalt ook de consumenten die de berichten asynchroon ontvangen.
MQF gebruikt RabbitMQ als overseinenmakelaar, die een scalable platform voor het verzenden van en het ontvangen van berichten verstrekt. Het omvat ook een mechanisme voor het opslaan van niet-geleverde berichten. RabbitMQ is gebaseerd op de Geavanceerde specificatie 0.9.1 van het een rij vormen van het Bericht van het Protocol (AMQP).
QUEUE_CONFIGURATION
-omgevingsvariabele om deze aan uw site te koppelen.Gebruik de volgende instructies voor de dienstopstelling op de milieu's van de Integratie Pro en van de Starter milieu's, met inbegrip van de master
tak.
om RabbitMQ toe te laten:
-
Voeg de vereiste naam, het type en de schijfwaarde (in MB) toe aan het
.magento/services.yaml
-bestand, samen met de geïnstalleerde RabbitMQ-versie.code language-yaml rabbitmq: type: rabbitmq:<version> disk: 1024
-
Configureer de relaties in het
.magento.app.yaml
-bestand.code language-yaml relationships: rabbitmq: "rabbitmq:rabbitmq"
-
U kunt wijzigingen in de code toevoegen, doorvoeren en doorvoeren.
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
en .magento.app.yaml
bij te werken. Zie de dienstversie van de Verandering voor begeleiding bij de bevordering of het degraderen van de dienst.Verbinding maken met RabbitMQ voor foutopsporing
Voor het zuiveren doeleinden, is het nuttig om met een de dienstinstantie op één van de volgende manieren direct te verbinden:
- Verbinding maken met uw lokale ontwikkelomgeving
- Verbinding maken vanuit de toepassing
- Verbinding maken met uw PHP-toepassing
Verbinding maken met uw lokale ontwikkelomgeving
-
Meld u aan bij de
magento-cloud
CLI en het project:code language-bash magento-cloud login
-
Ontdek de omgeving met RabbitMQ geïnstalleerd en geconfigureerd.
code language-bash magento-cloud environment:checkout <environment-id>
-
SSH gebruiken om verbinding te maken met de cloud-omgeving:
code language-bash magento-cloud ssh
-
Haal de de verbindingsdetails van RabbitMQ en login geloofsbrieven van $MAGENTO_CLOUD_RELATIONSHIPS variabele terug:
code language-bash echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
of
code language-bash php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"])));'
In de reactie, vind de informatie RabbitMQ, bijvoorbeeld:
code language-json { "rabbitmq" : [ { "password" : "guest", "ip" : "246.0.129.2", "scheme" : "amqp", "port" : 5672, "host" : "rabbitmq.internal", "username" : "guest" } ] }
-
Laat lokale haven toe door:sturen aan RabbitMQ (als uw project op een verschillend gebied zoals V.S.-3, EU-5, of AP-3 gebied wordt gevestigd, substitueer
us-3
/eu-5
/ap-3
voorus
)code language-bash ssh -L <port-number>:rabbitmq.internal:<port-number> <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
Een voorbeeld voor het verkrijgen van toegang tot de RabbitMQ-beheerwebinterface in
http://localhost:15672
is:code language-bash ssh -L 15672:rabbitmq.internal:15672 <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
-
Terwijl de sessie geopend is, kunt u een willekeurige RabbitMQ-client starten vanuit uw lokale werkstation, geconfigureerd om verbinding te maken met de
localhost:<portnumber>
. Hiervoor gebruikt u het poortnummer, de gebruikersnaam en de wachtwoordgegevens van de variabele MAGENTO_CLOUD_RELATIONSHIPS.
Verbinding maken vanuit de toepassing
Om met RabbitMQ te verbinden die in een toepassing loopt, installeer een cliënt, zoals amqp-utils , als projectgebiedsdeel in uw .magento.app.yaml
dossier.
Bijvoorbeeld:
dependencies:
ruby:
amqp-utils: "0.5.1"
Wanneer u zich aanmeldt bij uw PHP-container, voert u een amqp-
-opdracht in die beschikbaar is voor het beheren van uw wachtrijen.
Verbinding maken met uw PHP-toepassing
Als u verbinding wilt maken met RabbitMQ met uw PHP-toepassing, voegt u een PHP-bibliotheek toe aan de bronstructuur.