我有一个RabbitMQ集群xx.xx.xx.xx.xx6、xx.xx.xx.xx.xx7和xx.xx.xx.xx8。我正在尝试使用RMBCluster方法注册它们:
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(集群集群)中使用此功能。运行应用程序时,由于此错误,我的整个应用程序无法运行:
System.ArgumentException:无效的节点地址:amqp://xx.xx.xx6:5672(参数'address')。
请记住,我的RabbitMQ集群可能没有什么问题,因为在使用RabbitMQ.Client库时,一切都正常,但在尝试迁移到MassTransit时,MassTransit会导致问题。这是我认为问题至少在哪里。
1条答案
按热度按时间mznpcxlj1#
不要在主机地址中包含方案,它应该只包含:
字符串
如果使用默认端口,则不需要该端口。
更新
对于虚拟主机,它是
.Host
调用的第二个参数,而不是第一个。型
cluster-host-name
可以是任何值,因为在使用集群节点时,主机名是只显示的。