我在 Linux 上将两个服务部署为 docker 容器。
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 服务,但反过来不行
根据提供的文档我正在使用
"@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 端点?,