设置RabbitMQ服务
- 主题:
- 云
创建对象:
- 管理员
- 开发人员
Message Queue Framework (MQF)是Adobe Commerce中的系统,它允许模块将消息发布到队列。 它还定义了异步接收消息的消费者。
MQF使用RabbitMQ作为消息代理,该消息代理为发送和接收消息提供了一个可伸缩的平台。 它还包括用于存储未传递消息的机制。 RabbitMQ基于高级消息队列协议(AMQP) 0.9.1规范。
QUEUE_CONFIGURATION
环境变量将其连接到您的站点。请按照以下说明在专业集成环境和入门环境(包括master
分支)上进行服务设置。
启用RabbitMQ:
-
将所需的名称、类型和磁盘值(以MB为单位)与已安装的RabbitMQ版本一起添加到
.magento/services.yaml
文件中。rabbitmq: type: rabbitmq:<version> disk: 1024
-
在
.magento.app.yaml
文件中配置关系。relationships: rabbitmq: "rabbitmq:rabbitmq"
-
添加、提交和推送代码更改。
git add .magento/services.yaml .magento.app.yaml
git commit -m "Enable RabbitMQ service"
git push origin <branch-name>
连接到RabbitMQ以进行调试
出于调试目的,通过下列方式之一直接连接到服务实例会很有用:
- 从本地开发环境连接
- 从应用程序连接
- 从PHP应用程序连接
从本地开发环境连接
-
登录到
magento-cloud
CLI和项目:magento-cloud login
-
查看已安装并配置RabbitMQ的环境。
magento-cloud environment:checkout <environment-id>
-
使用SSH连接到云环境:
magento-cloud ssh
-
从$RabbitMQ_CLOUD_RELATIONSHIPS变量中检索MAGENTO连接详细信息和登录凭据:
echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
或
php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"])));'
在响应中,查找RabbitMQ信息,例如:
{ "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
)ssh -L <port-number>:rabbitmq.internal:<port-number> <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
访问
http://localhost:15672
的RabbitMQ管理Web界面的示例为:ssh -L 15672:rabbitmq.internal:15672 <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
-
会话打开时,您可以从本地工作站启动您选择的RabbitMQ客户端,该客户端配置为使用MAGENTO_CLOUD_RELATIONSHIPS变量中的端口号、用户名和密码连接到
localhost:<portnumber>
。
dependencies:
ruby:
amqp-utils: "0.5.1"
登录PHP容器时,输入可用于管理队列的任何amqp-
命令。
从PHP应用程序连接
要使用PHP应用程序连接到RabbitMQ,请将PHP库添加到源树中。