У меня следующая ситуация:
- сервер с именем testServer , где находится мой кластер RabbitMQ.
- имя кластера: rabbit@MyCompany-rabbitmq-test-node01
- на сервере в настоящее время есть 3 узла, каждый из которых работает в своем собственном контейнере docker. Давайте возьмем только один узел и его контейнер с именем: company-rabbitmq-test-node01
- Порты этого контейнера правильно открыты (5672 - это порт для связи с узлом, и 15672 это порт плагина)
- Виртуальный хост:
В моем коде:
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. Подробности см. В лог-файле брокера.
Моя страница пользователя:
user-app имеет доступ к виртуальному хосту. Я что-то упустил?