假设以下架构上下文:
+-----------------------------+
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进程由于某种原因停机,则逻辑进程必须继续运行。所有网络I/O进程和逻辑进程都是大堂服务器进程的子进程。
本质上,我是在询问如何实现同级进程(网络I/O和逻辑服务器)之间的通信。这些都是在Node中编写的,如果有针对Node的特定解决方案,但一般的想法也会很有帮助。
这是 this 问题的后续。
PS:如果这是一个过于笼统的编程问题,并且不属于这里,我很抱歉。如果是这种情况,我将删除它。
发布于 2014-12-18 23:00:24
在我看来,最简单和最具伸缩性的解决方案是具有这种Node绑定的ZeroMQ。ZeroMQ是“套接字”概念的强大实现,其通信后端可以变化,因此可以在本地和远程使用。
https://stackoverflow.com/questions/27552903
复制相似问题