Amazon-berichtenwachtrij instellen

Vanaf Handel 2.4.3, is de Rij van het Bericht van Amazon (MQ) beschikbaar als wolkklaar vervanging voor op-gebouw instanties van de berichtrij.

Als u een wachtrij met berichten in AWS wilt maken, raadpleegt u Amazon MQ instellen in de AWS-documentatie.

Handel configureren voor AWS MQ

Als u verbinding wilt maken met de AWS MQ-service, configureert u de 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 volgpoortnummer)
  • user—De gebruikersnaam die wordt 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 de env.php bestand, voert u de volgende opdracht uit om de installatie te voltooien:

bin/magento setup:upgrade

Hoe de Handel de dienst van AWS MQ gebruikt

De async.operations.all de consument van de berichtrij gebruikt de verbinding van AMQP.

Deze consument leidt om het even welke onderwerpnaam vooraf bepaald met async via de AWS MQ-verbinding.

Bijvoorbeeld in InventoryCatalog er zijn :

async.V1.inventory.bulk-product-source-assign.POST
async.V1.inventory.bulk-product-source-unassign.POST
async.V1.inventory.bulk-product-source-transfer.POST

De standaardconfiguratie voor InventoryCatalog publiceert geen berichten naar RabbitMQ; het standaardgedrag is dat de handeling in dezelfde gebruikersthread wordt uitgevoerd. Als u InventoryCatalog om berichten te publiceren, laat toe cataloginventory/bulk_operations/async. Ga vanuit de beheerder naar Winkels > Configuratie > Catalogus > Inventaris > bulkbewerkingen beheren en instellen Run asynchronouslytot Ja.

De wachtrij met berichten testen

Om het bericht te testen dat van de Handel naar RabbitMQ:

  1. Aanmelden bij de RabbitMQ webconsole in AWS voor het controleren van wachtrijen.

  2. Maak een product in Admin.

  3. Maak een inventarisbron.

  4. Inschakelen Winkels > Configuratie > Catalogus > Inventaris > Beheer bulkbewerkingen > asynchroon uitvoeren.

  5. Ga naar Catalogus > Producten. Selecteer het hierboven gemaakte product in het raster en klik op Inventarisbron toewijzen.

  6. Klikken Opslaan en sluiten om het proces te voltooien.

    U moet nu berichten zien in het dialoogvenster RabbitMQ webconsole.

  7. Start de async.operations.all de consument van de berichtrij.

    code language-bash
    bin/magento queue:consumers:start async.operations.all
    

Het bericht in de wachtrij wordt nu verwerkt in het dialoogvenster RabbitMQ webconsole.
Controleer of de inventarisbronnen op het product in de Admin zijn gewijzigd.

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