我有一个 RabbitMQ 集群 xx.xx.xx.xx6、xx.xx.xx.xx.xx7 和 xx.xx.xx.xx8。我正在尝试使用 UseCluster 方法注册它们:
busConfigurator.UsingRabbitMq((context, configurator) =>
{
var settings = context.GetRequiredService<MessageBrokerSettings>();
if (settings.UseMultiNodes)
{
configurator.Host(settings.VirtualHost,hostConfig =>
{
hostConfig.Username(settings.UserName);
hostConfig.Password(settings.Password);
hostConfig.UseCluster(cluster =>
{
foreach (var host in settings.Hosts)
{
cluster.Node(host);
}
});
});
}
});
});
我知道在集群前面使用 HAProxy 会更有意义并且效果更好,但现在这不是一个选项,所以我想在 MassTransit (UseCluster) 中使用此功能。运行应用程序时,由于此错误,我的整个应用程序无法运行:
未处理的异常。 System.ArgumentException:无效的节点地址:amqp://xx.xx.xx.xx6:5672(参数“地址”)。
请记住,我的 RabbitMQ 集群可能没有任何问题,因为使用 RabbitMQ.Client 库时一切正常,但在尝试迁移到 MassTransit 时,MassTransit 导致了问题。我认为至少问题出在哪里。
不要在主机地址中包含方案,它应该只包含:
<hostname|ip address>[:port]
如果使用默认端口,则不需要该端口。