RabbitMQ群集的MassTransit配置问题

mm5n2pyu  于 11个月前  发布在  RabbitMQ
关注(0)|答案(1)|浏览(157)

我有一个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会导致问题。这是我认为问题至少在哪里。

mznpcxlj

mznpcxlj1#

不要在主机地址中包含方案,它应该只包含:

<hostname|ip address>[:port]

字符串
如果使用默认端口,则不需要该端口。

更新

对于虚拟主机,它是.Host调用的第二个参数,而不是第一个。

configurator.Host("cluster-host-name", settings.VirtualHost,hostConfig =>


cluster-host-name可以是任何值,因为在使用集群节点时,主机名是只显示的。

相关问题