如何查找RabbitMQ连接字符串

f8rj6qna  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(2)|浏览(283)

我正在尝试为RabbitMQ添加运行状况检查。
首先。
1.其运行
1.我可以把东西排到它前面。
这不是RabbitMQ的问题,这是连接到RabbitMQ的运行状况检查的问题
我已将此添加到我的配置服务中。

services
    .AddHealthChecks()
    .AddRabbitMQ(rabbitConnectionString:"amqps://guest:guest@localhost/vhost");

但它会掷回例外状况。
失败:Microsoft.Extensions.Diagnostics.HealthChecks.DefaultHealthCheckService[103]运行状况检查rabbitmq在4144.5115毫秒后完成,状态为不正常,说明为'(null)'。RabbitMQ.客户端.异常.BrokerUnreachableException:指定的终结点都不可访问
很明显,我构建连接字符串的方式有问题,但是我已经尝试了我能想到的所有方法。
它也不是"amqps://guest:guest@localhost/rabbit"
这是一个开发版本,所以默认值都在适当的位置。
我想知道这是否与UI中的名称有关

但实际读写队列的代码使用localhost,所以我不确定为什么localhost不能工作。

kxeu7u2r

kxeu7u2r1#

很晚才回复,但我刚才也有同样的问题。
我解决这个问题的方法是使用IConnection重载而不是string连接字符串重载。

private static IConnection GetRabbitMqConnection(IServiceProvider _)
{
    ConnectionFactory factory = new ConnectionFactory();
    factory.UserName = "user";
    factory.Password = "password";
    factory.VirtualHost = "/vhost";
    factory.HostName = "localhost";
    factory.Port = AmqpTcpEndpoint.UseDefaultPort;
    IConnection conn = factory.CreateConnection();
}

然后再

services
    .AddHealthChecks()
    .AddRabbitMQ(GetRabbitMqConnection);

这给了我健康的React。

8wtpewkr

8wtpewkr2#

默认的RabbitMQ安装没有配置TLS。因此连接应该使用amqp协议而不是amqps,即URI应该以amqp://开头。
有关更多信息,请参阅此处:

相关问题