設定RabbitMQ服務
Message Queue Framework (MQF)是Adobe Commerce中的系統,可讓模組將訊息發佈至佇列。 它也會定義非同步接收訊息的消費者。
MQF使用RabbitMQ作為傳訊代理人,提供可擴充的平台來傳送及接收訊息。 它也包括儲存未傳遞訊息的機制。 RabbitMQ是以進階訊息佇列通訊協定(AMQP) 0.9.1規格為基礎。
QUEUE_CONFIGURATION
環境變數將其連線到您的網站。使用下列指示在Pro整合環境與入門環境(包括master
分支)上進行服務設定。
若要啟用RabbitMQ:
-
將所需的名稱、型別和磁碟值(以MB為單位)連同安裝的RabbitMQ版本新增至
.magento/services.yaml
檔案。code language-yaml rabbitmq: type: rabbitmq:<version> disk: 1024
-
設定
.magento.app.yaml
檔案中的關聯性。code language-yaml relationships: rabbitmq: "rabbitmq:rabbitmq"
-
新增、提交和推送您的程式碼變更。
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>
連線至RabbitMQ以進行偵錯
為了進行偵錯,建議您以下列其中一種方式直接連線至服務執行個體:
- 從您的本機開發環境連線
- 從應用程式連線
- 從您的PHP應用程式連線
從您的本機開發環境連線
-
登入
magento-cloud
CLI與專案:code language-bash magento-cloud login
-
檢視已安裝並設定RabbitMQ的環境。
code language-bash magento-cloud environment:checkout <environment-id>
-
使用SSH連線至雲端環境:
code language-bash magento-cloud ssh
-
從$RabbitMQ_CLOUD_RELATIONSHIPS變數擷取MAGENTO連線詳細資料和登入認證:
code language-bash echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
或
code language-bash php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"])));'
在回應中,尋找RabbitMQ資訊,例如:
code language-json { "rabbitmq" : [ { "password" : "guest", "ip" : "246.0.129.2", "scheme" : "amqp", "port" : 5672, "host" : "rabbitmq.internal", "username" : "guest" } ] }
-
啟用本機連線埠轉送至RabbitMQ (如果您的專案位於其他區域,例如US-3、EU-5或AP-3區域,請以
us-3
/eu-5
/ap-3
取代us
)code language-bash ssh -L <port-number>:rabbitmq.internal:<port-number> <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
在
http://localhost:15672
存取RabbitMQ管理Web介面的範例是:code language-bash ssh -L 15672:rabbitmq.internal:15672 <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
-
在工作階段開啟時,您可以從本機工作站啟動您選擇的RabbitMQ使用者端,設定為使用MAGENTO_CLOUD_RELATIONSHIPS變數的連線埠號碼、使用者名稱和密碼資訊連線至
localhost:<portnumber>
。
從應用程式連線
若要連線到應用程式中執行的RabbitMQ,請在您的.magento.app.yaml
檔案中安裝使用者端(例如amqp-utils)作為專案相依性。
例如,
dependencies:
ruby:
amqp-utils: "0.5.1"
當您登入PHP容器時,您輸入任何amqp-
命令可用於管理您的佇列。
從您的PHP應用程式連線
若要使用PHP應用程式連線到RabbitMQ,請將PHP程式庫新增到來源樹狀結構中。