【问题标题】:Hosted Service RabbitMQ connection failure using Docker Compose使用 Docker Compose 的托管服务 RabbitMQ 连接失败
【发布时间】:2021-11-17 03:01:55
【问题描述】:

这是日志

MassTransit.RabbitMqTransport.Integration.ConnectionContextFactory.CreateConnection(ISupervisor supervisor)
[02:51:48 DBG] Connect: guest@localhost:5672/
[02:51:48 WRN] Connection Failed: rabbitmq://localhost/
RabbitMQ.Client.Exceptions.BrokerUnreachableException: None of the specified endpoints were reachable

RabbitMQ 控制面板显示已创建的交换和队列,当我发出发布请求时,我看到队列通过但随后在尝试响应时出现 MassTransit 超时。

这是我的 docker yaml 设置。我假设 MassTransit 从 appsettings.json 提取其设置以进行连接。

version: '3.4'

services:
  
  hostedservice:
   environment:
      - ASPNETCORE_ENVIRONMENT=development
   ports:
      - "80"
      
  rabbitmq3:
        hostname: "rabbitmq"
        image: rabbitmq:3-management
        environment:
            - RABBITMQ_DEFAULT_USER=guest
            - RABBITMQ_DEFAULT_PASS=guest
            - RABBITMQ_DEFAULT_VHOST=/  
        ports:
            # AMQP protocol port
             - '5672:5672'
            # HTTP management UI
             - '15672:15672'

【问题讨论】:

  • 您正试图从一个容器连接到另一个容器。在这种情况下,您应该使用容器主机名 (rabbitmq),而不是 localhost。
  • 嗨,Alexey,我在 yaml 和 appsettings.json 中都将其更改为 rabbitmq,但 localhost 仍然出现在调试输出中。 [02:51:48 DBG] 连接:guest@localhost:5672/ [02:51:48 WRN] 连接失败:rabbitmq://localhost/
  • 如果不配置 RMQ 传输,它将默认使用 localhost。这是一个正确配置的示例masstransit-project.com/usage/transports/…
  • 好的,谢谢,我在 MassTransit Twitch Sample.Service 中使用 SagaStateMachine 设置。 github.com/MassTransit/Sample-Twitch/blob/master/src/… 为事件和状态机存储库添加 RabbitMq、MongoDB。它在非容器中运行良好,但是当我设置 docker yml 时,它给了我连接失败。我刚刚添加了 docker compose yaml ,如上所述。我假设 MassTrasnit 与 RabbitMQ 有连接,然后将 RabbitMQ 设置为作为容器进行通信?
  • 抱歉还是没有成功。学到了很多东西,但无法克服这个障碍。

标签: masstransit


【解决方案1】:

我建议使用 MassTransit Docker 模板来进行工作设置。或者你可以查看at the source code,看看在容器中运行时,模板如何使用rabbitmq 作为主机名进行连接。

您可以使用 NuGet 来download the template。

【讨论】:

  • 感谢克里斯,这使我能够创建一个更干净的 sagastatemachine 托管服务。
【解决方案2】:

感谢 Chris 让我使用容器模板解决了连接问题!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-24
    • 2015-08-04
    • 2019-12-07
    • 2019-04-01
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    相关资源
    最近更新 更多