消息代理

Adobe Commerce使用RabbitMQ开源消息代理。 它提供可靠、高可用、可扩展且便携的消息传递系统。

消息队列提供了一种异步通信机制,在这种机制中,消息的发送者和接收者不会相互联系。 它们也不需要同时与消息队列通信。 当发件人将邮件放入队列时,该邮件会一直存储到收件人收到这些邮件为止。

安装Adobe Commerce之前,必须建立消息队列系统。 基本顺序为:

  1. 安装RabbitMQ和任何先决条件。
  2. 将RabbitMQ连接到Adobe Commerce。
NOTE
您可以使用MySQL或RabbitMQ进行消息队列处理。 有关设置消息队列系统的详细信息,请参阅消息队列概述。 如果将Bulk API与Adobe Commerce一起使用,则消息队列系统配置默认为使用RabbitMQ作为消息代理。 有关详细信息,请参阅启动消息队列使用者

在Ubuntu上安装RabbitMQ

要在Ubuntu 16上安装RabbitMQ,请输入以下命令:

sudo apt install -y rabbitmq-server

此命令还会安装所需的Erlang包。

如果您使用的是旧版本的Ubuntu,RabbitMQ建议从其网站安装包。

  1. rabbitmq-server下载.deb包。
  2. 安装包含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
安装RabbitMQ的主机名。
--amqp-port
用于连接到RabbitMQ的端口。 默认值为5672
--amqp-user
用于连接到RabbitMQ的用户名。 不要使用默认用户guest
--amqp-password
用于连接到RabbitMQ的密码。 不要使用默认密码guest
--amqp-virtualhost
用于连接到RabbitMQ的虚拟主机。 默认值为/
--amqp-ssl
指示是否连接到RabbitMQ。 默认值为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文件中的sslssl_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后,必须启动消息队列使用者。 有关详细信息,请参阅配置消息队列

recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995