繁体   English   中英

如何在 docker compose 内的 Node.js 服务之间发送 json 消息

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM