【发布时间】:2015-02-17 14:43:33
【问题描述】:
假设以下架构上下文:
+-----------------------------+
Lobby Server Starts Process | |
+--------------+ | Network I/O process |
| +------------------------------> | Client I/O +--------------------+
| Lobby Server | | <-----------------> |
| | +---------------^-------------+ | Client Application |
++-----+-------+ | | |
| | | | |
| | | | |
| | +-----------------------------+ Client I/O | |
| | Lobby Server Starts Process | | <------------------> |
| | | Another Network|I/O Process | +--------------------+
| +-------------------------------------> | |
| +-----^-----------------------+
| | |
| | |
| Lobby Server Starts Process I | I |
| P | P |
+-------------------------------+ C | C |
| | |
| +----v----------v-----------------------+
| | |
+------------> Application Server Logic Process |
| |
+---------------------------------------+
我的问题是,鉴于以下设计,实现网络 I/O 服务器和逻辑服务器之间通信的好方法是什么。逻辑服务器不能依赖特定的网络 I/O 进程来工作,例如,如果网络 I/O 进程由于某种原因出现故障,则逻辑进程必须继续运行。所有的 Network I/O 进程和逻辑进程都是 Lobby Server Process 的子进程。
本质上,我是在寻求有关如何实现兄弟进程(网络 I/O 和逻辑服务器)之间通信的想法。这都是用 Node 编写的,如果有针对 Node 的特定解决方案,但一般的想法也会有所帮助。
这是对 this 问题的跟进。
PS:如果这是一个过于笼统的编程问题并且不属于这里,我很抱歉。如果是这种情况,我会删除它。
【问题讨论】:
标签: architecture server node.js