消息代理
Adobe Commerce使用RabbitMQ开源消息代理。 它提供可靠、高可用、可扩展且便携的消息传递系统。
消息队列提供了一种异步通信机制,在这种机制中,消息的发送者和接收者不会相互联系。 它们也不需要同时与消息队列通信。 当发件人将邮件放入队列时,该邮件会一直存储到收件人收到这些邮件为止。
安装Adobe Commerce之前,必须建立消息队列系统。 基本顺序为:
- 安装RabbitMQ和任何先决条件。
- 将RabbitMQ连接到Adobe Commerce。
在Ubuntu上安装RabbitMQ
要在Ubuntu 16上安装RabbitMQ,请输入以下命令:
sudo apt install -y rabbitmq-server
此命令还会安装所需的Erlang包。
如果您使用的是旧版本的Ubuntu,RabbitMQ建议从其网站安装包。
- 从rabbitmq-server下载.deb包。
- 安装包含
dpkg
的包。
有关详细信息,请参阅在Debian/Ubuntu上安装。
在CentOS上安装RabbitMQ
安装Erlang
RabbitMQ是使用Erlang编程语言编写的,该语言必须安装在与RabbitMQ相同的系统上。
有关详细信息,请参阅手动安装。
请参阅RabbitMQ/Erlang版本矩阵以安装正确的版本。
安装RabbitMQ
RabbitMQ服务器包含在CentOS中,但版本通常较旧。 RabbitMQ建议从其网站安装包。
请参阅RabbitMQ安装页面以获取最新支持的版本。 Adobe Commerce 2.3和2.4支持RabbitMQ 3.8.x。
有关详细信息,请参阅在基于RPM的Linux上安装。
配置RabbitMQ
查看官方RabbitMQ文档以配置和管理RabbitMQ。 请注意以下事项:
- 环境变量
- 端口访问
- 默认用户帐户
- 启动和停止代理
- 系统限制
使用RabbitMQ安装并连接
如果在安装 之后安装Adobe Commerce,则在安装RabbitMQ期间添加以下命令行参数:
--amqp-host="<hostname>" --amqp-port="5672" --amqp-user="<user_name>" --amqp-password="<password>" --amqp-virtualhost="/"
其中:
--amqp-host
--amqp-port
5672
。--amqp-user
guest
。--amqp-password
guest
。--amqp-virtualhost
/
。--amqp-ssl
false
。 如果将该值设置为true ,请参阅配置SSL以了解更多信息。连接RabbitMQ
如果您已安装Adobe Commerce并且要将其连接到RabbitMQ,请在<install_directory>/app/etc/env.php
文件中添加queue
部分,以使其类似于以下内容:
'queue' =>
array (
'amqp' =>
array (
'host' => 'rabbitmq.example.com',
'port' => '11213',
'user' => 'magento',
'password' => 'magento',
'virtualhost' => '/'
),
),
您还可以使用bin/magento setup:config:set
命令设置RabbitMQ配置值:
bin/magento setup:config:set --amqp-host="rabbitmq.example.com" --amqp-port="11213" --amqp-user="magento" --amqp-password="magento" --amqp-virtualhost="/"
运行命令或使用AMQP配置值更新<install_directory>/app/etc/env.php
文件后,运行bin/magento setup:upgrade
以应用更改并在RabbitMQ中创建所需的队列和交换。
配置SSL
要配置对SSL的支持,请编辑<install_directory>/app/etc/env.php
文件中的ssl
和ssl_options
参数,使它们类似于以下内容:
'queue' =>
array (
'amqp' =>
array (
'host' => 'rabbitmq.example.com',
'port' => '11213',
'user' => 'magento',
'password' => 'magento',
'virtualhost' => '/',
'ssl' => 'true',
'ssl_options' => [
'cafile' => '/etc/pki/tls/certs/DigiCertCA.crt',
'certfile' => '/path/to/magento/app/etc/ssl/test-rabbit.crt',
'keyfile' => '/path/to/magento/app/etc/ssl/test-rabbit.key'
],
),
),
启动消息队列使用者
连接Adobe Commerce和RabbitMQ后,必须启动消息队列使用者。 有关详细信息,请参阅配置消息队列。