我正在使用 MassTransit(版本 8.1.3)。我们有 2 个不同的 RabbitMQ 集群,到目前为止我一直在使用其中之一。一切都运转良好。现在,我已切换到不同的集群,我无法连接到 RabbitMQ 服务器,并且看到 Broker 无法访问异常。
我可以使用用户名和密码在浏览器上访问该网址,但无法通过代码访问该网址。
我怎样才能知道如何解决这个问题?您是否有任何文章可以解释为什么我可以通过浏览器进行连接,但不能通过我的代码进行连接?有没有文章可以解释我用来查看幕后情况的工具?关于这两个集群之间的差异,我需要向 DevOps 团队提出什么样的问题?
这是我的代码
创建总线 `IBusControl 总线控制 = Bus.Factory.CreateUsingRabbitMq(x => {
x.Host(new Uri(rabbitHost), h =>
{
h.Username(rabbitUserName);
h.Password(rabbitPassword);
});
x.ReceiveEndpoint(rabbitQueue,
e =>
{
e.Consumer<MyConsumerClass>();
e.Bind<MyConsumerClass>();
}
);
});`
巴士出发
private static void StartBus(IBusControl bus)
{
try
{
MessageSource.WriteLine(TestRunId, Guid.Empty, "Starting Bus", DeviceId, null);
TaskUtil.Await(() => bus.StartAsync());
MessageSource.WriteLine(TestRunId, Guid.Empty, "Started Bus", DeviceId,null);
}
catch (Exception ex)
{
MessageSource.WriteLine(TestRunId, Guid.Empty, $"StartBus faied", DeviceId,ex);
throw ex;
}
}
我尝试使用不同的用户。我本来希望我能进去,但我没有。
我尝试传递指定超时的取消令牌。
我尝试将 /userName 添加到网址末尾。
我尝试用这种方式更改主机和端口...
x.Host(url, port,"", h =>{
h.Username(rabbitUserName);
h.Password(rabbitPassword);
});
我明白了为什么我无法连接......我的网址指定了 15672 端口。这是默认的 UI 端口,因此它解释了为什么我能够通过浏览器进行连接。端口 5672 是默认 API 端口。当我把它切换到5672时,它起作用了。
我原来的url没有指定端口,所以使用了默认的端口。