使用 docker link 时拒绝连接到 RabbitMQ

2024-01-17

我有一个微服务应用程序,它有两个服务和一个用作它们之间通信的消息队列的rabbit mq。现在,我想将它们部署在docker上。我在以下代码中docker-compose.yml file:

版本:“3” 服务:

  rabbitmq:
    build: ./Rabbit
    hostname: "rabbitmq"
    container_name: "rabbitmq"
    environment:
      RABBITMQ_ERLANG_COOKIE: "cookie"
      RABBITMQ_DEFAULT_USER: "user"
      RABBITMQ_DEFAULT_PASS: "pass"
      RABBITMQ_DEFAULT_VHOST: "/"
    ports:
      - "15672:15672"
      - "5672:5672"
    # labels:
    #   NAME: "rabbit1"
    volumes:
    - "/opt/rabbitmq:/var/lib/rabbitmq"

  service1:
    build: ./service1
    deploy:
      replicas: 5
      restart_policy:
        condition: on-failure
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
    ports:
      - "8181:80"
    depends_on:
      - rabbitmq
    links:
     - rabbitmq
    networks:
      - webnet

所以,这里我在一个容器中构建RabbitMQ镜像,然后将该容器链接到service1. Since service1一个是 ASP.NET Core Web API,我使用以下设置连接到消息队列:

//Establish the connection
            var factory = new ConnectionFactory
            {
                HostName = "rabbitmq",
                Port = 5672,
                UserName = "user",
                Password = "pass",
                VirtualHost = "/",
                AutomaticRecoveryEnabled = true,
                NetworkRecoveryInterval = TimeSpan.FromSeconds(15)
            };

但当我尝试跑步时docker-compose up,我收到以下错误消息:

未处理的异常: RabbitMQ.Client.Exceptions.BrokerUnreachableException:没有一个 指定端点可达 ---> RabbitMQ.Client.Exceptions.ConnectFailureException:连接失败 ---> System.Net.Internals.SocketExceptionFactory + ExtendedSocketException: 没有这样的设备或地址

也许我有一个错误HostName但我不知道如何纠正它。


有两个问题需要解决:

  1. 这两个服务不属于同一网络,因此您需要添加rabbitmq服务于webnet网络或为这两个服务创建一个新网络

  2. rabbitmq可能需要一些时间才能完全可用(即听取5672端口)所以你需要使service1服务等待rabbitmq服务;看这个问题 https://stackoverflow.com/questions/31746182/docker-compose-wait-for-container-x-before-starting-y关于这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 docker link 时拒绝连接到 RabbitMQ 的相关文章

随机推荐

  • Qt Designer如何更改背景

    这是转帖 我是 Qt Designer 的新手 想要对一些按钮的丑陋做一些事情 我昨天所做的就是在互联网上查找如何在 Qt Designer 中更改屏幕的背景颜色 如何更改按钮的颜色以及如何使其侧面变成另一种颜色 你猜怎么了 我什么也没找到
  • RubyMine 文件夹树不刷新

    今天首次在 Mac OSX Leopard 上使用 RubyMine 2 0 2 如果我在文件系统中创建文件 例如 使用脚本 生成 这些新文件不会出现在 ruby mine 中 我在重新启动程序时取得了有限的成功 因为 db 文件夹中的文件
  • 如何在 pandas DataFrame 中允许重复的列名

    我有一个数据框 我想更新该数据框的列名称 列名有重复的条目 下面的代码给出错误 无法从重复的轴重新索引 list alpha beta gamma alpha df pd DataFrame datframe columns list No
  • Spotify 最新更新:Autohotkeys 脚本损坏

    我曾经使用 AutoHotKey 脚本作为 Spotify 快捷方式 内置快捷方式有限 只有在应用程序处于焦点状态时才有效 我通常在工作时将其保留在后台 不管怎样 它之前已经更新了一百万次了 没有任何问题 但是我下载了最新的 Spotify
  • AVAssetExportSession 卡住(未启动)导出

    我尝试从照片库导出视频 但导出回调从未执行 我定期检查导出进度 进度始终为零 下面的代码在 99 9 的情况下都有效 但有时在某些设备上 绝对随机 它会停止工作 只有重新启动 iPhone 才有帮助 AVAssetExportSession
  • 为什么这封邮件会直接进入垃圾邮件箱?

    我正在使用以下脚本发送邮件 但这总是最终进入垃圾邮件文件夹 为什么 您在发送邮件时必须使用标头 以证明邮件是来自真实来源而不是机器人 尝试这个
  • 使用 CQRS 在 DDD 中进行命令验证

    我正在学习 DDD 并利用 CQRS 模式 我不明白如何在不从数据存储中读取的情况下验证命令处理程序中的业务规则 例如 克里斯想给阿什利一件礼物 该命令可能是 GiveGiftCommand 我什么时候才能验证克里斯确实拥有他想要赠送的礼物
  • PHP 购物车中买一送半价总计

    我正在用 PHP 创建一个购物车 其中一个特定的商品是买一送一半价 当用户购买该商品时 我希望从总数中扣除报价 但我坚持如何从数学上做到这一点 到目前为止 我在 if 循环中从数据库获取数据有类似的内容 total total arrayc
  • 内嵌显示单选按钮列表

    我的页面上有一些广播列表 我面临的问题是单选按钮的文本没有显示在单选按钮的内联中 我已将重复布局放入表和流中 但两者都不起作用 我尝试添加一种显示样式 内联 但这也不起作用 尽管它在复选框上起作用 并且我认为也许它在这里也起作用 这只是一个
  • 增强 Jquery 拖放演示

    我有一个非常匹配的要求这个 Jquery 演示 http jqueryui com demos droppable shopping cart 这是一个简单的购物车演示 基本上我需要对该演示进行两项增强 我需要文本输入以及可用的 产品 因此
  • BizTalk 内部和外部架构

    我在网上读到 您将 外部模式 与 内部模 式 分开 并且永远不要将 内部模式 暴露给任何外部参与者 如果我的解决方案仅充当消息总线来在两个现有系统之间创建松散耦合 我真的需要任何内部模式吗 System A makes a Request
  • 无法验证 Google 访问令牌(段数错误)

    我有非常简单的代码直接来自 Google 网站 https developers google com identity sign in web backend auth using a google api client library
  • 将执行动态查询的结果插入表中

    我有一个动态查询 strQuery执行时会产生包含很多列的结果 我想将此动态查询的结果插入到临时表中 我这样做是因为我想对临时表执行一些过滤并获得所需的结果 之前的帖子也问过类似的问题HERE https stackoverflow com
  • FileSystemWatcher 一段时间后停止引发事件

    我们构建了一个窗口服务来监听文件夹FileSystemWatcher 创建后我们处理文件等等 但几天后该活动停止工作 它有可能被垃圾收集器 GC 收集吗 GC 是否收集它的持有类 这是一个单例 我应该使用弱事件吗 我是否存在导致事件未注册的
  • 如何检测grails中渲染了哪个视图文件

    我必须知道grails 渲染时的视图文件 一种方法是过滤器中的 grails afterView 操作 在这里 我找不到一种方法来知道哪个视图文件已被渲染 那么 有没有什么方法可以让我知道哪个视图文件已被渲染方法渲染 这不太漂亮 但在大多数
  • 从 Word 中提取嵌入的 Excel 工作表数据

    我有一批嵌入了 Excel 工作表的 Word 文档 用户通过双击工作表图像并打开嵌入的 Excel 对象在 Excel 工作表中输入数据 我需要获取用户输入的数据 下面是 WORD VBA 其中引用了 Microsoft Excel 15
  • 预编译方面的语句与准备语句

    我理解使用Statement和PreparedStatement之间的主要区别 PreparedStatements允许传入参数 但我读到了两者之间的细微差别 即PreparedStatement 可以比通用语句更快 因为PreparedS
  • 使用对象的浅拷贝时出现双重释放错误...如何修复?

    如何从浅复制对象与原始对象中删除双重 删除 错误 一个简单的例子 class INT int p dynamic define here fancy constructors etc set int i p new int p i INT
  • 基于 WPF 和 MVVM 模式中的嵌套模型实体构建 ViewModel

    我在理解如何基于以下模型构建视图模型时遇到问题 我简化了模型以便更清晰 public class Hit public bool On get set public Track Track get set public class Trac
  • 使用 docker link 时拒绝连接到 RabbitMQ

    我有一个微服务应用程序 它有两个服务和一个用作它们之间通信的消息队列的rabbit mq 现在 我想将它们部署在docker上 我在以下代码中docker compose yml file 版本 3 服务 rabbitmq build Ra