我花了几个小时在谷歌上搜索,但似乎找不到正确的路径/文档来帮助我走上正确的道路:(
前提很简单。
我有一个在localhost:8080上打开的springboot应用程序。我有一个在localhost:15672上打开的rabbitmq服务器
当这两个应用程序都运行时,springboot应用程序将通过一些用户交互向Rabbitmq服务器发送消息。当我对这两个独立的服务进行dockerize(容器化?)时,问题就出现了。现在,当它们都被容器化时,我仍然可以分别使用localhost:8080和localhost:15672访问这两个应用程序。但是,当我的Spring启动应用程序提交用户消息时,我总是收到“连接拒绝”错误。
我做过的无用功(失败) :
version: "3.2"
services:
rabbitmq:
image: rabbitmq:management
ports:
- "5672:5672"
- "15672:15672"
networks:
- hin-net
app-container:
image: spring/spring-boot-docker:latest
ports:
- 8080:8080
environment:
- SPRING_RABBITMQ_HOST=html" target="_blank">rabbitmq
depends_on:
- rabbitmq
networks:
hin-net:
driver: bridge
唯一的事情是自动创建两个docker容器,而不是我通过“docker run”创建它们——这也不起作用。
有人能帮助链接或为我提供一些指导,说明如何让我的springboot应用程序查看并连接到我的RabbitMQ服务器吗?无论我看哪里,人们都说“确保他们在同一个docker网络中”,但这并不起作用。我怀疑我的docker撰写文件缺少一些重要的配置,但我不知道下一步该去哪里。
这两条线基本上是我的问题
但他们死了,从未找到解决方案。
Welp找到了答案。希望将来任何有同样问题的人都能看到这篇文章,并能够继续他们的项目!
显然,这不是一个泊坞窗问题。应用程序的主机名必须是运行 rabbitmq 的容器名。因此,在 springboot 的 application.properties 文件中,您可能将主机名设置为“localhost”,将其更改为容器名称,rabbit 将建立连接。
我读到这是一个rabbitmq依赖项。很弱,很弱。
希望这对任何人有所帮助
第二个参考:从Docker容器到本地主机的Rabbitmq连接被拒绝(第二个答案是正确的)
从我的spring-boot应用程序容器连接到Rabbitmq时,我遇到了一个错误。 我在docker compose文件中附加了两个docker容器(Rabbitmq和spring-boot应用程序)和网桥网络: 当我的Spring Boot应用程序尝试连接到后者时,Rabbitmq拒绝了连接。日志下方: 当我在我的spring boot应用程序容器(在我的例子中是orchestrator)中执
我正在运行2个spring boot应用程序:一个客户端和rest-api。客户机与rest-api通信,rest-API与mongodb数据库通信。所有3层都在docker容器中运行。 我启动容器,通常指定docker文件中公开的端口,并将它们映射到主机上的端口,例如:-p 7070:7070,其中7070是docker文件中公开的端口。 当我通过< code > Java-jar[applic
我有一个Java应用程序在Docker容器中运行,在另一个容器中运行。 如何连接容器以在Java应用程序中使用<code>rabbitmq</code>?
试图在localhost中建立从app容器到mysql容器的连接,出现连接拒绝异常 我们正在采取一种docker的方法来调用rest api服务来采用微服务的方法。我们正在建立应用程序容器和mysql容器之间的连接,同时我们编写了一个docker-compose文件,创建了mysql容器和应用程序容器,为这两个容器公开了端口。下面是运行docker-compose文件docker-compose
我有以下设置: 此外,在node.js进程stdout/stderr中没有错误或崩溃的迹象。 以下是我看到的错误: 会有什么问题?
我想在一个容器中运行 RabbitMQ,在另一个容器中运行工作进程。工作进程需要访问 RabbitMQ。 我希望这些通过进行管理。 这是我的<代码>docker compose。迄今为止,yml文件: 所以我暴露了RabbitMQ端口。工作进程使用以下URL访问RabbitMQ: 这是他们在官方教程中使用的,但是已被替换为,因为容器应该可以使用与容器名称相同的主机名来发现: 默认情况下,“合成”会