无法从 arangodb Foxx 服务在 docker 网络中调用 Spring boot Rest Endpoint

问题描述 投票:0回答:0

我在 Linux 上将两个服务部署为 docker 容器。

  • arangodb Foxx 上的应用程序(arangodb 版本 3.5.7)
  • 具有一些休息端点的 Spring Boot 应用程序
CONTAINER ID   IMAGE                COMMAND                  CREATED         STATUS        PORTS                                       NAMES
463bd83993fc   rtm-service:latest   "java -jar rtmapp.jar"   15 hours ago    Up 15 hours   0.0.0.0:8085->9096/tcp, :::8085->9096/tcp   rtm-service-container
54ff37336885   arangodb:3.5.7       "/entrypoint.sh aran…"   18 months ago   Up 15 hours   0.0.0.0:8529->8529/tcp, :::8529->8529/tcp   arangodb_1

为了使两个服务相互通信,我创建了共享 docker 网络并在其中添加了两个服务

sdk@W10NCT40:~$ docker network inspect rtm-network
[
    {
        "Name": "rtm-network",
        "Id": "9fd06cb71df3a171fce1120e030a63159812cbdc0a83d4d54235dfe13a2e2eac",
        "Created": "2023-03-29T10:32:02.1767092Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.19.0.0/16",
                    "Gateway": "172.19.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "463bd83993fc74c52db29d570d8d70e4915d0651e6f6017a4fd0be22a48f00e2": {
                "Name": "rtm-service-container",
                "EndpointID": "7bbac30d3ae264137988913721b308ed7c41557411abc46bc69df6dcec132181",
                "MacAddress": "02:42:ac:13:00:03",
                "IPv4Address": "172.19.0.3/16",
                "IPv6Address": ""
            },
            "54ff37336885dc2d2fa9f838fd22f7994a274f0f7aeeb2598ff48ed7e97af323": {
                "Name": "arangodb_1",
                "EndpointID": "bd65ceb810c40b71feaa9c4658142e1561797fb74e5a888d3a091bfc069790f9",
                "MacAddress": "02:42:ac:13:00:02",
                "IPv4Address": "172.19.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

docker 网络是正确的,因为我可以从 spring boot 应用程序调用 arangodb Foxx 服务,但反过来不行

  • 从 sprint 启动应用程序 (rtm-service-container) 调用 rest 端点到 arangodb Foxx (arangodb_1) “WORKS FINE”。
  • 从 arangodb Foxx (arangodb_1) 调用 rest end point 到 sprint boot app (rtm-service-container) 确实“不工作”。

根据提供的文档我正在使用

"@arangodb/request"
模块。所以我尝试通过以下代码从我的 arangdb foxx 服务调用 spring boot app rest 端点

const request = require("@arangodb/request");
const response = request.get(
        "http://rtm-service-container:8085/rtm/request-management/products-list"
      );
console.log(response)

以下代码运行良好,但我没有收到产品列表,而是在 arangodb 端收到以下错误消息

[IncomingResponse 500 Could not connect to 'http+tcp://rtm-service-container:8085' 'connect() failed with #111 - Connection refused' empty]

在我的 spring boot 应用程序上,我没有收到任何获取请求。

我期待 arangodb foxx 服务对我的 spring boot 应用程序进行适当的休息调用,并且应该能够收到产品列表作为响应。

我不确定这里出了什么问题,我应该怎么做才能从我的 arandb foxx 服务成功调用 spring boot rest 端点?,

node.js spring-boot arangodb docker-network arangodb-foxx
© www.soinside.com 2019 - 2024. All rights reserved.