当前位置: 首页 > 知识库问答 >
问题:

Spring boot docker rest模板连接被拒绝

莘聪
2023-03-14

我有两个服务,Spring启动docker,当我尝试与rest模板通信时,我得到了java.net.ConnectException:连接拒绝(连接拒绝)

url为http://localhost:8081/api/v1/package/250Mbps

服务1 docker compose。yml:

product_catalogue_service:
image: openjdk:8-jdk-alpine
ports:
  - "8081:8081"
volumes:
  - .:/app
working_dir: /app
command: ./gradlew bootRun
restart: on-failure

服务2 docker compose。yml:

order_service:
image: openjdk:8-jdk-alpine
ports:
  - "8083:8083"
volumes:
  - .:/app
working_dir: /app
command: ./gradlew bootRun
restart: on-failure

Rest模板URL,它是工作时,我运行项目2从IntelliJ:http://localhost:8081/api/v1/package/250Mbps

当我运行docker ps时,第一个服务的名称是:productcatalogeservice\u product\u catalogu\u service\u 1

我试图用它来代替localhost未知主机异常。

我尝试了“product_catalogue_service_1”,也未知主机异常,最后我尝试了“product_catalogue_service”也未知主机异常。

知道吗?

共有1个答案

白芷阳
2023-03-14

默认情况下,docker-complace在您的联系人之间创建一个网络,并将服务名称分配为主机名。

因此,您可以从订单服务中访问产品目录服务,如下所示:http://product_catalog_service:8081/api/v1/package/250Mbps

现在,从你的帖子来看,你似乎有两个不同的docker-compose.yml文件,每个服务一个。在这种情况下,每个容器都生活在自己的网络中(由docker-com靠拢创建),它们不能互相看到,至少默认情况下是这样。

老实说,我从来没有尝试连接两个由两个不同的docker-compse文件创建的容器。我总是创建一个docker-compose.yml文件,把我所有的服务放在那里,让docker-composing管理它们之间的网络。

用一个docker-compose.yml

version: ...
services:
  product_catalogue_service:
    image: openjdk:8-jdk-alpine
    ports:
      - "8081:8081"
    volumes:
      - .:/app
    working_dir: /app
    command: ./gradlew bootRun
    restart: on-failure
  order_service:
    image: openjdk:8-jdk-alpine
    ports:
      - "8083:8083"
    volumes:
      - .:/app
    working_dir: /app
    command: ./gradlew bootRun
    restart: on-failure

最后,这个答案非常详细地解释了为什么localhost:8081不能从您的order_service容器中工作。

 类似资料:
  • 问题内容: 我是 HBase 和 Hadoop的 新手。我已经完全设置了HBase并完美启动。现在,当我尝试使用Java客户端从 p1 连接到HBase(HBase安装在 p2上 )时,它抛出了一个奇怪的异常。 问题答案: 我找到了解决方案。 通过仅从我的 主机中 删除 localhost 条目。现在我的本地主机条目就像 192.169.19.50 [这是我的hbase IP] =本地主机,而不是

  • 问题内容: 我正在尝试实现TCP连接,从服务器端一切正常,但是当我运行客户端程序(从客户端计算机)时,出现以下错误: 我尝试更改套接字号以防万一,但无济于事,有谁知道导致此错误的原因和解决方法。 服务器代码: 客户代码: 问题答案: 此异常意味着你尝试连接的IP /端口上没有侦听服务: 你试图连接到错误的IP /主机或端口。 你尚未启动服务器。 你的服务器没有监听连接。 在Windows服务器上,

  • 我无法连接到RabbitMQ。RabbitMQ不在本地计算机上。 我的应用程序.属性看起来像 我可以使用https://urltologinscreen:15671访问Rabbitmq gui 我得到以下错误 如何解决问题?

  • 我试着让我的selenium测试在debian服务器上运行,但是我一直从我的GeckoDriver得到连接拒绝错误。在运行Ubuntu的本地机器上,它运行得很好。你们谁知道怎么了?我找不到任何有用的东西。 OS:Debian Jessie 构建工具:Gradle Java-版本:8 设置方法 错误信息

  • 我试图通过Jedis客户端连接到redis服务器,但在连接时我得到了以下异常和堆栈跟踪- redisconnectionFailureException:无法获得Jedis连接;嵌套异常是redis.clients.jedis.exceptions.jedisconnectionException:无法从位于org.springframework.data.redis.connection.jed

  • 我正在尝试运行卡桑德拉,但每次它在连接时都会给出相同的错误...有什么我需要在配置文件或属性文件中编辑的吗? ('无法连接到任何服务器',{'127.0.0.1:9042 ':错误(61,"尝试连接到[('127.0.0.1 ',9042)]。最后一个错误:连接被拒绝")}) 启动cassandra时出错