【问题标题】:Communicating between two nodejs application在两个 nodejs 应用程序之间进行通信
【发布时间】:2017-10-02 03:10:34
【问题描述】:

我有三个(nodejs)进程 P1、P2、P3。

  • P1 的函数 A 完成其执行,它向 P2 发送一些数据。

  • P2 执行其活动,其输出应发送到 P3。

  • P3 处理输入向 P1 的函数 B 发送一些确认数据。

这三个都是不同的 node js 应用程序,运行在不同的服务器上(在同一个 LAN 中)。问题是what should be the communication mechanism between these processes.

三个选项似乎是可行的:

1) REST API(快速)

让所有进程都成为 Express REST API 并使用 http node js 包调用所需的函数

2) 发布/订阅

当 P1 完成工作时,它将输出作为消息发布到主题,P2 成为订阅者,onMessage P2 进程执行。

3) TCP/IP

一个简单的 TCP/IP 服务器-客户端架构,其中 P1 成为服务器客户端,P2 作为服务器。每当 P1 完成工作时,通过套接字发送输出。

所有三个选项都用于多对一或多对多通信,所以我想可能会有很多不必要的开销,因为我的要求只有进程之间的一对一通信。

我还有其他方法可以使用吗,或者这些最好的套装之一是两难选择。

请提出建议。

谢谢。

【问题讨论】:

    标签: node.js rest sockets tcp publish


    【解决方案1】:

    您可以使用 mqtt 协议。这是一个非常轻量级和快速的协议。在此协议中,您将获得发布者、订阅者和代理。 Publisher 将通过 mqtt broker 将数据发送给 topic 下的订阅者。它与 Pub/Sub 几乎相同。

    MQTT Architecture

    MQTT

    注意:P1 的函数 A 将发布数据,P2 将订阅。在 P2 完成其活动后,它将向 P3 发布数据,并且 P3 将处于订阅模式。之后,P3 将发布确认,P1 的函数 B 将订阅该主题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      • 2011-08-03
      • 2013-02-24
      • 2014-10-22
      相关资源
      最近更新 更多