将RabbitMQ添加到现有的Magento 2 EE安装


8

有没有办法将RabbitMQ / AMQP安装程序添加到现有的M2 EE安装中?所有文档似乎都在喊必须在安装时完成,但这似乎有点限制。但是,我在管理员中找不到配置主机,端口等的任何位置。

Answers:


7

以下步骤应有所帮助:

  1. 在数组中添加以下元素app/etc/env.php

    'queue' => [ 'amqp' => [ 'host' => 'localhost', 'port' => '5672', 'user' => 'guest', 'password' => 'guest', 'virtualhost' => '/', 'ssl' => '' ] ]

  2. 确保在RabbitMQ端正确配置了交换,队列和交换到队列的映射。目前,仅在安装AMQP模块时才执行一次。但是,可以通过调用启动RabbitMQ配置过程\Magento\Amqp\Model\Topology::installRabbitMQ管理插件是查看当前配置的好工具

目前,RabbitMQ支持已在非常基本的级别上实现,并且将在最近的Magento版本中得到改进。目前最好的选择是,如果可能的话,重新安装Magento。


谢谢,我运行了安装程序,找到了env.php设置,但不了解拓扑安装步骤。这就是为什么我的测试什么都不做的原因。
robjingram

1
只是注意到以上情况就是如此。我通过从中删除AMQP设置来再次运行它,setup_module然后我的队列出现在RabbitMQ管理器中
robjingram 2015年

您实际上可以将Magento \ Amqp \ Model \ Topology注入您自己的模块UpgradeData中,然后从那里调用$ this-> topology-> install()方法,而无需强调setup_module表。

0

它看起来现在可以在2.1.7+中内置(可能更早吗?)。但是,如果您仍然需要此功能,我对此进行了测试,它可以工作:

<?php

namespace MyNamespace\MyModule\Setup;

use Magento\Amqp\Model\Topology;
use Magento\Framework\Setup\InstallSchemaInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;

class InstallSchema implements InstallSchemaInterface
{
    /**
     * @var Topology
     */
    private $topology;

    /**
     * InstallData constructor.
     */
    public function __construct(Topology $topology)
    {
        $this->topology = $topology;
    }


    /**
     * Installs DB schema for a module
     *
     * @param SchemaSetupInterface   $setup
     * @param ModuleContextInterface $context
     *
     * @return void
     */
    public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
    {
        $setup->startSetup();
        $this->topology->install();
        $setup->endSetup();
    }
}

-1

setup:install可以使用更改所有命令setup:store-config:set


该命令的帮助列出了一些我可以设置的参数,例如,--base-url但是如何使用它来设置devdocs.magento.com/guides/v2.0/install-gde/prereq/…上列出的任何选项?例如,如果我通过,则会--amqp-host收到错误消息,指出该选项不存在。
robjingram 2015年

好吧,我对此几乎可以肯定。我无法直接测试它,因为我没有要测试的EE版本,您可以尝试使用这些参数选项进行全新安装(在其他地方),然后查看/ app / etc / env .php ...我很确定此类本地配置存储在此文件中。
MauroNigrele 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.