Подключение приложения к кластеру RabbitMQ через MassTransit. AuthenticationFailureException: ACCESS_REFUSED - PullRequest
1 голос
/ 28 февраля 2020

У меня следующая ситуация:

  • сервер с именем testServer , где находится мой кластер RabbitMQ.
  • имя кластера: rabbit@MyCompany-rabbitmq-test-node01
  • на сервере в настоящее время есть 3 узла, каждый из которых работает в своем собственном контейнере docker. Давайте возьмем только один узел и его контейнер с именем: company-rabbitmq-test-node01
  • Порты этого контейнера правильно открыты (5672 - это порт для связи с узлом, и 15672 это порт плагина)
  • Виртуальный хост:

enter image description here

В моем коде:

container.AddMassTransit(x =>
{
    LogContext.ConfigureCurrentLogContext(container.Resolve<SerilogLoggerFactory>());
    x.AddBus(context => Bus.Factory.CreateUsingRabbitMq(cfg =>
    {
        var host = cfg.Host("testServer", hostConfigurator =>
        {
            hostConfigurator.Username("user-app");
            hostConfigurator.Password("user-password");

            hostConfigurator.UseCluster(c =>
            {
                string[] hostnames = ("testServer:5672;testServer:5682;testServer:5692").Split(';');
                c.ClusterMembers = hostnames;
            });
        });


        cfg.ConfigureEndpoints(container);
    }));

});

IBusControl busControl = container.Kernel.Resolve<IBusControl>();
try
{
    busControl.Start();
}
catch (Exception ex)
{
    var logger = container.Resolve<ILogger>();
    logger.Error("RabbitMQ broker is not reachable, BusControl cannot be started. ", ex);
}

ПРОБЛЕМА: когда я пытаюсь запустить приложение, оно говорит:

Брокер недоступен: testServer: 5672 / ---> RabbitMQ.Client.Exceptions.BrokerUnreachableException: ни одна из указанных конечных точек не была достижимый ---> RabbitMQ.Client.Exceptions.AuthenticationFailureException: ACCESS_REFUSED - вход в систему был отклонен с использованием механизма аутентификации PLAIN. Подробности см. В лог-файле брокера.

Моя страница пользователя:

enter image description here

user-app имеет доступ к виртуальному хосту. Я что-то упустил?

...