gpt4 book ai didi

java.net.ConnectException : Connection refused between two microservices via docker

转载 作者:行者123 更新时间:2023-12-02 19:44:35 25 4
gpt4 key购买 nike

我有两个微服务。一个名为“configuration-service”,另一个名为“sender-service”。 REST 之后的第一个可以下载配置。在本地,使用(Intellij)环境,服务通信没有任何问题。当我尝试使用 Docker 将任何内容从一个服务下载到另一个服务时,问题就出现了。
此外,运行配置服务后,我可以轻松地在浏览器中检索值数据。
但是,当我运行以下组合时,我会收到标题中的错误。
在其余线程中,我发现的只是“网络”的建议,但它不起作用。
综上所述,只有使用docker才会出现通信问题,从而消除了代码的问题。
第一个dockerfile:

FROM adoptopenjdk/openjdk11:latest
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8888
ENTRYPOINT ["java","-jar","/app.jar"]
第二:
FROM adoptopenjdk/openjdk11:latest
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8889
ENTRYPOINT ["java","-jar","/app.jar"]
jetty worker 组成:
version: '3.1'

services:
configuration-service:
image: configuration:latest
container_name: configuration-service
ports:
- "8889:8889"
restart: always
networks:
- common-network

sender-service:
image: sender:latest
container_name: sender-service
ports:
- "8888:8888"
restart: always
networks:
- common-network


networks:
common-network:
driver: bridge
提前感谢任何提示

最佳答案

我认为@OneCricketeer 已经确定了这个问题。
如果您同时运行两个容器(在 Docker 之外),您需要将它们作为 --net=host 运行。或类似的,以便它们都绑定(bind)到主机端口,以便一个可以通过 localhost:${PORT} 访问另一个.
如果您在 Docker Compose 下运行容器,它们将无法作为 localhost 访问。但作为 configuration-servicesender-service可分别访问 88898888分别(假设服务确实绑定(bind)到这些端口)。

NOTE the Compose ports functionality is only relevant to process bound to the host's network. From the host, you should be able to confirm access to these services on 8888 and 8889 because of the ports but this is unnecessary to ensure configuration-service and sender-service are able to communicate with one another.

关于java.net.ConnectException : Connection refused between two microservices via docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64322625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com