Adicione RabbitMQ à instalação existente do Magento 2 EE

8

Existe uma maneira de adicionar a configuração RabbitMQ / AMQP a uma instalação M2 EE existente? Todos os documentos parecem gritar que isso deve ser feito no momento da instalação, mas isso parece um pouco limitador. No entanto, não consigo encontrar em nenhum lugar do administrador para configurar host, porta etc.

robjingram
fonte

Respostas:

7

Os seguintes passos devem ajudar:

  1. Adicione o seguinte elemento à matriz em app/etc/env.php:

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

  2. Verifique se trocas, filas e mapeamentos de troca para fila estão configurados corretamente no lado do RabbitMQ. No momento, isso é feito apenas uma vez quando o módulo AMQP está instalado. No entanto, é possível iniciar o processo de configuração do RabbitMQ chamando \Magento\Amqp\Model\Topology::install. O plugin de gerenciamento RabbitMQ é uma boa ferramenta para visualizar a configuração atual

No momento, o suporte ao RabbitMQ é implementado em um nível muito básico e será aprimorado no escopo dos lançamentos Magento mais próximos. A melhor opção por enquanto é reinstalar o Magento, se possível.

Alex Paliarush
fonte
Obrigado, executei a instalação e encontrei as configurações do env.php, mas não sabia sobre a etapa de instalação da topologia. Pode ser por isso que meu teste não está fazendo nada.
robjingram
11
Apenas observando que o acima foi o caso. Forcei a configuração AMQP a correr novamente, retirando-a setup_modulee os meus filas, em seguida, apareceu no gerenciador RabbitMQ
robjingram
Você pode realmente injetar Magento \ Amqp \ Model \ Topology em seu próprio módulo UpgradeData e invocar $ this-> topology-> install () a partir daí sem forçar a tabela setup_module.
0

Parece que agora está embutido no 2.1.7+ (talvez mais cedo?). Mas se você ainda precisa disso, eu testei com isso e funciona:

<?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();
    }
}
kirkmadera
fonte
-1

Todos os setup:installcomandos podem ser alterados usando setup:store-config:set.

MauroNigrele
fonte
A ajuda para esse comando lista alguns parâmetros que eu posso definir, --base-urlmas como devo usá-lo para definir qualquer uma das opções listadas em devdocs.magento.com/guides/v2.0/install-gde/prereq/… ? Por exemplo, se eu passar --amqp-host, recebo um erro que a opção não existe.
robjingram
Bem, eu tinha quase certeza disso. Não posso testá-lo diretamente porque não tenho uma versão EE para testar; você pode tentar fazer uma nova instalação (em outro lugar) usando essas opções de parâmetros e depois dar uma olhada em / app / etc / env .php ... tenho certeza de que esse tipo de configuração local está armazenado neste arquivo.
MauroNigrele