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-broker
  • password—De wachtwoordwaarde die wordt ingevoerd bij het maken van de AWS MQ-broker
INFO
Amazon MQ ondersteunt alleen TLS-verbindingen. Peer-verificatie wordt niet ondersteund.

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:

  1. Meld u aan bij de RabbitMQ webconsole in AWS om wachtrijen te controleren.

  2. Maak een product in Admin.

  3. Maak een inventarisbron.

  4. Laat Opslag > Configuratie > Catalogus > Voorraad toe > de bulkverrichtingen Admin > asynchroon Looppas.

  5. Ga naar Catalogus > Producten. Van het net, selecteer het product hierboven wordt gecreeerd en klik Voorraad Source toewijzen.

  6. Klik sparen & Sluiten om het proces te voltooien.

    De berichten worden nu weergegeven in de webconsole van RabbitMQ .

  7. 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.

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c