Amazon-berichtenwachtrij instellen
Vanaf Commerce 2.4.3 is de Rij van het Bericht van Amazon (MQ) beschikbaar als wolkklaar vervanging voor op-gebouw instanties van de berichtrij.
Om een berichtrij op AWS tot stand te brengen, zie Vestiging Amazon MQin de documentatie van AWS.
Commerce voor AWS MQ configureren
Als u verbinding wilt maken met de AWS MQ-service, configureert u het queue.amqp
-object in het env.php
-bestand.
AWS Message Queue vereist een SSL/TLS-verbinding.
'queue' => [
'amqp' => [
'host' => '[host]', //example: c-bf4kk1c5-5gcc-4b43-9b9e-8f5b54d234.mq.us-west-3.amazonaws.com
'port' => 5671,
'user' => 'yourusername',
'password' => 'yourpassword',
'virtualhost' => '/',
// AWS fields to add
'ssl' => 'true'
]
],
Waarbij:
host
- De URL voor het AMQP-eindpunt; beschikbaar door op de naam van de makelaar in AWS te klikken (verwijder "https://" en het navolgende poortnummer)user
—De gebruikersnaam die is ingevoerd bij het maken van de AWS MQ-brokerpassword
—De wachtwoordwaarde die wordt ingevoerd bij het maken van de AWS MQ-broker
Nadat u het env.php
-bestand hebt bewerkt, voert u de volgende opdracht uit om de installatie te voltooien:
bin/magento setup:upgrade
Hoe Commerce de AWS MQ-service gebruikt
De gebruiker van de async.operations.all
berichtenwachtrij gebruikt de AMQP-verbinding.
Deze gebruiker leidt elke onderwerpnaam die vooraf aan async
via de AWS MQ-verbinding staat.
In InventoryCatalog
zijn er bijvoorbeeld:
async.V1.inventory.bulk-product-source-assign.POST
async.V1.inventory.bulk-product-source-unassign.POST
async.V1.inventory.bulk-product-source-transfer.POST
In de standaardconfiguratie voor InventoryCatalog
worden geen berichten naar RabbitMQ gepubliceerd. Standaard wordt de handeling in dezelfde gebruikersthread uitgevoerd. Schakel cataloginventory/bulk_operations/async
in als u wilt weten dat InventoryCatalog
berichten moet publiceren. Van admin, ga > Configuratie > Catalogus > Inventaris > de bulkverrichtingen van Admin Run asynchronously
aan ja plaatsen.
De wachtrij met berichten testen
Om het verzenden van berichten van Commerce naar RabbitMQ te testen:
-
Meld u aan bij de RabbitMQ webconsole in AWS om wachtrijen te controleren.
-
Maak een product in Admin.
-
Maak een inventarisbron.
-
Laat Opslag > Configuratie > Catalogus > Voorraad toe > de bulkverrichtingen Admin > asynchroon Looppas.
-
Ga naar Catalogus > Producten. Van het net, selecteer het product hierboven wordt gecreeerd en klik Voorraad Source toewijzen.
-
Klik sparen & Sluiten om het proces te voltooien.
De berichten worden nu weergegeven in de webconsole van RabbitMQ .
-
Start de consument van de
async.operations.all
wachtrij met berichten.code language-bash bin/magento queue:consumers:start async.operations.all
Het bericht in de wachtrij wordt nu verwerkt in de RabbitMQ -webconsole.
Controleer of de inventarisbronnen op het product in de Admin zijn gewijzigd.