RabbitMQ 集群的 MassTransit 配置问题

问题描述 投票:0回答:1

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

c# rabbitmq microservices masstransit
1个回答
0
投票

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

<hostname|ip address>[:port]

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

© www.soinside.com 2019 - 2024. All rights reserved.