簡體   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