部署到同一服务器中设置了开发和演示两个环境的服务器时,MassTransit 服务总线无法工作

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

基本上,我们在 .Net 核心应用程序中使用 MassTransit 和 RabbitMQ 来发布和使用消息。我们在同一台服务器上维护 2 个环境 - 开发环境和演示环境。 为此,我们在 RabbitMQ 中创建了 2 个虚拟主机 dev 和 demo,并将 dev vhost 配置为在 dev 环境中使用,将 demo vhost 配置为在 demo 环境中使用。 当我们运行开发应用程序时,服务总线将启动,并且消息将被正确发布和使用。但在demo中,服务总线没有启动,消息也没有发布和消费。需要帮助找出此问题的解决方案。

例如。 appsettings.json 供开发应用程序使用

“RabbitMqSettings”:{ "Uri": "rabbitmq://localhost/dev", "用户名": "访客", “密码”:“客人” } A 对于演示来说是

“RabbitMqSettings”:{ "Uri": "rabbitmq://localhost/demo", "用户名": "访客", “密码”:“客人” }

在Program.cs中我们有如下配置:

builder.Services.AddMassTransit(mt => mt.AddMassTransit(x => { mt.AddConsumer();

x.UsingRabbitMq((cntxt, cfg) => {
    cfg.Host(uri, c => {
        c.Username(rabbitMqSettings.UserName);
        c.Password(rabbitMqSettings.Password);
    });           
    cfg.ConfigureEndpoints(cntxt);
});        

})
);

在开发日志中,我们可以看到以下几行:

2024-04-26 13:34:06.9383|0|INFO|MassTransit|配置的端点 OrderCreated,消费者:OrderAPI.Services.OrderCreatedConsumer 2024-04-26 13:34:07.2920|0|INFO|MassTransit|巴士启动:rabbitmq://localhost/dev

在 Demo 日志中,我们看不到 Bus Started 信息。

2024-04-27 13:34:06.9383|0|INFO|MassTransit|配置的端点 OrderCreated,消费者:OrderAPI.Services.OrderCreatedConsumer

不确定为什么我们没有获取演示的总线启动信息..

有人对此有任何想法吗?请帮忙。

rabbitmq masstransit
1个回答
0
投票

您需要授予用户访问虚拟主机的权限,我猜您没有。

此外,如果您正确配置了 host options,您可以设置

StartTimeout
,之后连接到代理的任何错误都会被记录。

如果 MassTransit 无法连接,您应该在日志中看到一条警告消息,因此,还要检查您的日志。

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