Node.js的状态进程间通信

我可能会错过一个显而易见的诡计,但是…

无论如何,2+ node.js过程以有状态的方式交换消息? 例如:进程A是一个HTTP服务器,它传入外部http请求的字段,以满足从进程B或C获取信息所需的这些请求。目前,我有'A'为每个请求打开一个TCP / IP连接' B“或”C“,它们正在合适的端口上收听。

由于每个请求都需要大量的开销来打开套接字并closures套接字,而不是每个请求都打开一个套接字,所以这看起来非常糟糕,而且开销很大。我看不到一种方法来确保从“B”或“C '绑定到正确的HTTP响应。

所有进程都在nodejs中,B + C启动时间很长(30+秒),因此每个请求产生它们不是一个选项。 所有进程当前都在同一个机器上运行(双核)。
就协议而言,我使用的是基本的“ networking ”服务器,如nodejs文档中所述,并在文档中投掷文本。

任何build议等欣然接受

您可以select传递一个唯一的会话ID(应用程序服务器/自我生成)作为您的消息的一部分(进程之间A – > B / C)&也许附加一个计数器的会话ID(与会话ID之间的分隔符柜台)跟踪请求。 计数器会在每个新的请求上递增。 我相信可能有更好/更简单的select,你可以利用。

对于进程间消息传输,可以查看内存中的caching(例如redis / memcached等)或使用消息服务器,如ZermoMQ / RabbitMQ等(您也可以使用Redis进行队列/ pub-sub消息传递)。 您也可以select避免消息传递服务器,只需在节点内使用hook.io或net / tcp进行消息传输。

希望能帮助到你。