Configura il servizio RabbitMQ

MQF è un sistema di Adobe Commerce che consente a un modulo di pubblicare messaggi nelle code. Definisce inoltre i consumatori che ricevono i messaggi in modo asincrono.

MQF utilizza RabbitMQ come broker di messaggistica, che fornisce una piattaforma scalabile per l'invio e la ricezione di messaggi. Include inoltre un meccanismo per l’archiviazione dei messaggi non consegnati. RabbitMQ è basato sulla specifica AMQP 0.9.1.

WARNING
Se preferisci utilizzare un servizio basato su AMQP esistente, come RabbitMQ, invece di affidarti ad Adobe Commerce sull'infrastruttura cloud per crearlo, utilizza la variabile di ambiente QUEUE_CONFIGURATION per connetterlo al tuo sito.

Utilizzare le istruzioni seguenti per la configurazione del servizio negli ambienti di integrazione Pro e negli ambienti Starter, incluso il ramo master.

NOTE
Invia un ticket di supporto Adobe Commerce per modificare la configurazione del servizio negli ambienti di produzione e staging di Pro.

Per abilitare RabbitMQ:

  1. Aggiungere il nome, il tipo e il valore del disco richiesti (in MB) al file .magento/services.yaml insieme alla versione di RabbitMQ installata.

    code language-yaml
    rabbitmq:
        type: rabbitmq:<version>
        disk: 1024
    
  2. Configurare le relazioni nel file .magento.app.yaml.

    code language-yaml
    relationships:
        rabbitmq: "rabbitmq:rabbitmq"
    
  3. Aggiungi, esegui il commit e invia le modifiche al codice.

    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>
    
  4. Verificare le relazioni del servizio.

TIP
Dopo la configurazione iniziale del servizio, è possibile modificare la versione del software per un servizio installato aggiornando i file di configurazione services.yaml e .magento.app.yaml. Per informazioni sull'aggiornamento o il downgrade di un servizio, vedere Modifica versione del servizio.

Connetti a RabbitMQ per il debug

A scopo di debug, è utile connettersi direttamente a un’istanza del servizio in uno dei seguenti modi:

  • Connettersi dall’ambiente di sviluppo locale
  • Connettersi dall’applicazione
  • Connessione dall'applicazione PHP

Connettersi dall’ambiente di sviluppo locale

  1. Accedere a magento-cloud CLI e al progetto:

    code language-bash
    magento-cloud login
    
  2. Controlla l’ambiente con RabbitMQ installato e configurato.

    code language-bash
    magento-cloud environment:checkout <environment-id>
    
  3. Utilizza SSH per connettersi all’ambiente Cloud:

    code language-bash
    magento-cloud ssh
    
  4. Recupera i dettagli della connessione RabbitMQ e le credenziali di accesso dalla variabile $MAGENTO_CLOUD_RELATIONSHIPS:

    code language-bash
    echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
    

    o

    code language-bash
    php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"])));'
    

    Nella risposta, trova le informazioni di RabbitMQ, ad esempio:

    code language-json
    {
       "rabbitmq" : [
          {
             "password" : "guest",
             "ip" : "246.0.129.2",
             "scheme" : "amqp",
             "port" : 5672,
             "host" : "rabbitmq.internal",
             "username" : "guest"
          }
       ]
    }
    
  5. Abilita l'inoltro porta locale a RabbitMQ (se il progetto si trova in un'area diversa, ad esempio Stati Uniti-3, UE-5 o AP-3, sostituire us-3/eu-5/ap-3 con us)

    code language-bash
    ssh -L <port-number>:rabbitmq.internal:<port-number> <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
    

    Un esempio per accedere all'interfaccia Web di gestione di RabbitMQ in http://localhost:15672 è:

    code language-bash
    ssh -L 15672:rabbitmq.internal:15672 <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
    
  6. Mentre la sessione è aperta, è possibile avviare un client RabbitMQ scelto dalla workstation locale, configurato per connettersi a localhost:<portnumber> utilizzando le informazioni relative al numero di porta, al nome utente e alla password della variabile MAGENTO_CLOUD_RELATIONSHIPS.

Connettersi dall’applicazione

Per connettersi a RabbitMQ in esecuzione in un'applicazione, installare un client, ad esempio amqp-utils, come dipendenza del progetto nel file .magento.app.yaml.

Ad esempio:

dependencies:
    ruby:
        amqp-utils: "0.5.1"

Quando si accede al contenitore PHP, si immette qualsiasi comando amqp- disponibile per la gestione delle code.

Connessione dall'applicazione PHP

Per connettersi a RabbitMQ utilizzando l'applicazione PHP, aggiungere una libreria PHP alla struttura di origine.

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26