【问题标题】:(Docker) RabbitMQ.Client.Exceptions.BrokerUnreachableException: None of the specified endpoints were reachable(Docker) RabbitMQ.Client.Exceptions.BrokerUnreachableException: 没有一个指定的端点是可达的
【发布时间】:2021-07-07 04:57:05
【问题描述】:

我在 Docker 上运行了 RabbitMQ 发送器、接收器和管理器,如下所示。

当我在本地计算机上运行 Receiver 和 Sender 时,一切都运行良好。但是当我在 Docker 上运行它时,会出现如下所示的错误。

RabbitMQ.Client.Exceptions.BrokerUnreachableException: None of the specified endpoints were reachable

以下是我如何连接到 RabbitMQ。

设置有什么问题,或者我需要更改连接到 RabbitMQ 的方式吗?

【问题讨论】:

    标签: docker .net-core docker-compose rabbitmq


    【解决方案1】:

    当您的应用程序在容器上运行时,您应该为您的 rabbitMQ 工厂使用不同的主机名 对于您的网络应用程序 localhost 意味着您的容器环境,但您的兔子在另一个容器上运行

    最好从 appsettings.json 文件中设置主机名并在运行时从那里提取它, 但现在,使用 rabbit 容器的实际主机名对其进行测试

    在你的情况下:ecomm-rabbit

    并尝试使用这个工厂而不是构建一个 url:

     var factory = new ConnectionFactory
                    {
                        HostName = _hostname, // "ecomm-rabbit"
                        UserName = _username,
                        Password = _password
                    };
                    _connection = factory.CreateConnection();
    

    另外,如果您使用的是 docker compose 并且您将其设置为:

      rabbitmq: <-----
        container_name: rabbitmq
        ports:
          - 5672:5672
          - 15672:15672
    #    environment:
    #      - RABBITMQ_DEFAULT_USER=user
    #      - RABBITMQ_DEFAULT_PASS=password
        image: rabbitmq:3-management
    

    服务名被翻译成主机名

    【讨论】:

      猜你喜欢
      • 2020-07-20
      • 1970-01-01
      • 2015-10-04
      • 2020-11-25
      • 2019-05-17
      • 1970-01-01
      • 2015-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多