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.
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
.
Per abilitare RabbitMQ:
-
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
-
Configurare le relazioni nel file
.magento.app.yaml
.code language-yaml relationships: rabbitmq: "rabbitmq:rabbitmq"
-
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>
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
-
Accedere a
magento-cloud
CLI e al progetto:code language-bash magento-cloud login
-
Controlla l’ambiente con RabbitMQ installato e configurato.
code language-bash magento-cloud environment:checkout <environment-id>
-
Utilizza SSH per connettersi all’ambiente Cloud:
code language-bash magento-cloud ssh
-
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" } ] }
-
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
conus
)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
-
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.