Spring/RabbitMQ 教程的 Docker 映像导致连接被拒绝

2023-12-21

我正在这里学习 Spring 教程;

使用 RabbitMQ 发送消息 https://spring.io/guides/gs/messaging-rabbitmq/

我发现了这个问题,但它没有解决我关于docker-compose.yml教程中找到的文件;

Spring RabbitMQ 教程导致连接被拒绝错误 https://stackoverflow.com/questions/30223203/spring-rabbitmq-tutorial-results-in-connection-refused-error

我已经完成了所有必要的步骤,直到应用程序实际运行,此时我得到了ConnectException异常表明服务器未运行或运行不正确。

教程中指定的docker-compose.yml文件如下;

rabbitmq:
image: rabbitmq:management
ports:
  - "5672:5672"
  - "15672:15672"

基本上我不确定这个 docker-compose 文件实际上是做什么的,因为它似乎没有按照教程建议的方式设置 RabbitMQ 服务器(或者至少没有按照教程期望的方式设置)。我对 Docker 也很陌生,所以也许我错误地认为这个文件将运行 RabbitMQ 服务器的新实例。

当我跑步时docker-compose up我得到以下控制台输出;

rabbitmq_1  |
rabbitmq_1  | =INFO REPORT==== 28-Jun-2017::13:27:26 ===
rabbitmq_1  | Starting RabbitMQ 3.6.10 on Erlang 20.0-rc2
rabbitmq_1  | Copyright (C) 2007-2017 Pivotal Software, Inc.
rabbitmq_1  | Licensed under the MPL.  See http://www.rabbitmq.com/
rabbitmq_1  |
rabbitmq_1  |               RabbitMQ 3.6.10. Copyright (C) 2007-2017            Pivotal Software, Inc.
rabbitmq_1  |   ##  ##      Licensed under the MPL.  See  http://www.rabbitmq.com/
rabbitmq_1  |   ##  ##
rabbitmq_1  |   ##########  Logs: tty
rabbitmq_1  |   ######  ##        tty
rabbitmq_1  |   ##########
rabbitmq_1  |               Starting broker...
rabbitmq_1  |
rabbitmq_1  | =INFO REPORT==== 28-Jun-2017::13:27:26 ===
rabbitmq_1  | node           : rabbit@bd20dc3d3d2a
rabbitmq_1  | home dir       : /var/lib/rabbitmq
rabbitmq_1  | config file(s) : /etc/rabbitmq/rabbitmq.config
rabbitmq_1  | cookie hash    : DTVsmjdKvD5KtH0o/OLVJA==
rabbitmq_1  | log            : tty
rabbitmq_1  | sasl log       : tty
rabbitmq_1  | database dir   : /var/lib/rabbitmq/mnesia/rabbit@bd20dc3d3d2a

...加上大量信息报告。这让我相信 RabbitMQ 服务器已启动并正在运行,但显然没有,因为我无法连接。

我让它工作的唯一方法是手动安装 Erlang 和 RabbitMQ(在 Windows 系统上),这似乎让我完成了教程。

为什么本教程中甚至提到了 Docker?这docker-compose.yml似乎没有按照教程的建议进行操作。

该文件实际上在这里做什么以及如何在 Docker 容器中运行 RabbitMQ 来实现本教程的目的?这是端口号的问题吗?


事实证明,问题出在 Spring RabbitMQ 模板连接信息上。

Spring 教程假设使用正常的手动安装 RabbitMQ(加上 Erlang),并且 RabbitMQ Spring 模板使用一些与图像不兼容的默认连接参数docker-compose教程中指定的文件。

为了解决这个问题,我需要添加一个 Springapplication.properties文件并将其添加到resources我的应用程序目录结构中的文件夹。接下来,我需要使用以下命令查找 Docker 容器的 IP 地址;

docker-machine ip

这将给出 IP 地址。我将以下参数添加到application.properties file;

spring.rabbitmq.host={docker-machine ip address}
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

这里的端口、用户名和密码都是默认的,可以在RabbitMQ文档中找到。

通过这样做,我能够让我的应用程序正确连接到 Docker 容器中运行的 RabbitMQ 服务器。

Spring 教程似乎有点不完整,因为它没有告知读者使用 RabbitMQ 时需要一些额外的步骤docker-compose文件覆盖本教程其余部分假设的手动安装 RabbitMQ 的过程。

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

Spring/RabbitMQ 教程的 Docker 映像导致连接被拒绝 的相关文章

随机推荐

  • AppFabric 安装错误代码 1603

    我意识到这个问题已经被问到 但迄今为止发布的所有解决方案尚未取得巨大成功 这是 3 个日志中的 2 个 我很可能在这里遗漏了一些东西 但非常感谢您的帮助 应用服务器设置 2013 05 20 18 14 31 Information Set
  • 如何使用计时器运行 php 脚本?

    我有 foreach 函数来打印学生姓名 names array Alex Brad Tom foreach names as name echo name br sleep 3 我如何打印每个名字 每 3 秒一次 后 echo name
  • 如何使用 bash 脚本安装包含变量的 bash 函数? [复制]

    这个问题在这里已经有答案了 我正在尝试创建一个 bash 脚本 该脚本允许我在多台计算机上安装相同的 bash 函数 此特定函数在备份目录中创建带有时间戳的文件副本 filebackup cp filebackup date Y m d H
  • ASP.NET MVC3 WebGrid 帮助程序和模型元数据

    我正在尝试使用 ASP NET MVC 3 中的 WebGrid html 帮助程序根据 ModelMetadata 中找到的信息自动生成列 例如 接受对象列表的视图中的代码将是 var grid new WebGrid Model gri
  • 两个列表的交集,在第一个列表中保留重复项

    我有两个平面列表 其中之一包含重复值 例如 array1 1 4 4 7 10 10 10 15 16 17 18 20 array2 4 6 7 8 9 10 我需要在 array1 中查找也在 array2 中的值 将重复项保留在 ar
  • 在 ActionScript 3 中将一系列函数“链接”在一起

    我正在调用一个函数 并在该函数返回一些数据时添加一个侦听器 当数据返回时我需要调用另一个函数等等 是否有一种简单的方法将这些函数 链接 在一起 以便第一个函数触发 等待侦听器 然后触发第二个函数 为其创建侦听器 依此类推 直到最后一个函数调
  • SSRS 传递报告参数

    我度过了艰难的一天 试图解决这个问题的根本问题 我有一个用户输入信息的表单 该信息通过 URL 传递到 SSRS 我收到错误 An error has occurred during report processing rsProcessi
  • UITextField 中的 UITextPosition

    有什么方法可以让我通过文本字段的 UITextRange 对象获取 UITextField 当前的插入符位置吗 UITextField 返回的 UITextRange 有什么用吗 UITextPosition 的公共接口没有任何可见成员 昨
  • 基于 Restful 的视频流

    使用 spring boot 我想制作基于 RESTful 的视频播放器 我的文件浏览器中有 mp4 扩展名的视频 如何通过创建休息端点在前端提供这些视频 我已经尝试过这个方法 http shazsterblog blogspot com
  • 如何在 Three.js 中更改脸部颜色

    我正在尝试更改网格单个面上的颜色 这是在 WebGL 上下文中 我可以改变整个网格的颜色 但不能改变单个面的颜色 相关代码如下 Updated Per Lee var camera this camera var projector new
  • 如何编写语法类似Python缩进的语言?

    我正在使用类似于 Python 的内置语言编写一个工具 我想让缩进在语法中有意义 以便行开头的制表符和空格代表命令的嵌套 做这个的最好方式是什么 我之前写过递归下降和有限自动机解析器 目前的CPython http en wikipedia
  • 仅对最近修改的文件运行 grunt-contrib-jshint

    我们正在一个非常大的网站上重构代码 我想对任何发生更改的文件强制执行 linting 但忽略其余文件 因为其中许多文件最终会被删除 所以整理它们是浪费时间 我想要一个 grunt 任务来检查文件的修改日期是否比其创建 从存储库获取 日期更新
  • Vue.js 在 setTimeout 后滚动到新页面路由的顶部

    当立即滚动到新路线的顶部时 我的页面转换效果不佳 我想等待 100 毫秒 然后它会自动滚动到顶部 以下代码根本不会滚动 有没有办法做到这一点 export default new Router mode history routes pat
  • elasticsearch.js 客户端连接被拒绝:Access-Control-Allow-Origin 无法识别?

    我一直在尝试使用elasticsearch jquery min js ping 本地运行的elasticsearch 每次都会收到 无活动连接 错误 ETA 在 Chrome 中 我看到看起来相当低级别的 连接被拒绝 我正在 MacOS
  • 使用切片值的 Golang 字符串格式

    在这里 我尝试从包含字符串的切片为我的 API 创建查询字符串 ie where node name node1 node name node 2 import fmt strings func main nodes string node
  • 函数内部多处理 scipy 优化的奇怪行为

    这是一个运行良好的简单代码 即使函数 minimize 包装了 scipy optimize minimize 它也不会抱怨酸洗 import numpy as np from scipy import optimize from mult
  • 重新使用对象的存储而不首先销毁它是UB吗?

    给定非 POD 类型T auto p new T new p T delete p 这是UB吧 显然我并没有直接泄漏为其分配的内存T 如果它没有间接成员 那么我根本不会泄漏任何东西 但它从未被破坏 在我看来 这似乎是自发毁灭由有感知的猫类生
  • 单行 INSERT 是原子的吗?例如。在有 1M 列的表上?

    单行 INSERT 是原子的 对于外部读取器 吗 想象一下它发生在一个有 1M 列的表上 在执行单个INSERT语句 即 单行 类型 是否有可能同时发生的读取操作 可能使用 读取未提交 隔离级别 仅读取some值 列 我对 MS SQL S
  • 如何通过策略将 Azure 资源锁应用到资源组

    我正在尝试创建一个 Azure 策略 该策略会将级别为 CanNotDelete 的资源锁部署到订阅内的资源组 目前该策略 100 合规 但该策略尚未创建任何锁定 我的 JSON policy rules 文件中有以下内容 if field
  • Spring/RabbitMQ 教程的 Docker 映像导致连接被拒绝

    我正在这里学习 Spring 教程 使用 RabbitMQ 发送消息 https spring io guides gs messaging rabbitmq 我发现了这个问题 但它没有解决我关于docker compose yml教程中找