[英]How to send json messages between Node.js services inside a docker compose
假设我有两个 Node.js 服务在 docker compose 中运行。 服务 A 侦听端口 4000,服务 B 侦听端口 5000。如何将 json 消息从服务 A 发送到 B(反之亦然)(使用 Express)?
通过一个简单的 docker-compose 文件,这两个服务可以使用它们的服务名称相互访问。 这是由services:
下面的顶级键定义的services:
. 在这个简单的例子中,服务one
可以通过简单地将其寻址为http://two:5000
来与服务two
。 另一个方向使用http://one:4000
工作相同,假设进程在内部侦听这些端口号。 两个容器也可以在内部侦听同一个端口,因为它们具有不同的网络接口。 确保不要在此处与本地主机(4444 和 5555)的端口映射混淆。
version: "3.8"
services:
one:
image: yourname/yourimage-one
ports:
- "4444:4000"
two:
image: yourname/yourimage-two
ports:
- "5555:5000"
有关更高级的设置,请参阅网络上的docker-compose 文档。
我假设您正在谈论使用 JSON 作为数据格式的 REST API。 有很多方法可以做到这一点。 Express 本身用于构建服务器端,而不是客户端。 您可以使用nodejs 文档中显示的标准 API 或多个第三方库之一来执行请求。 例如, Axios是一个非常流行的 http 请求库。 也可以在节点文档中查看 axios 的一个示例。
在大多数情况下,使用双向的 http 请求进行循环连接并不是一个好主意。 也许两者之一可以充当生产服务,而另一个更像是消费服务?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.