我建立一个游戏服务器在Python,我只是想对我的想法了服务器的体系结构的一些输入。评估我的Python服务器结构
所以,大家都知道,Python不能扩展跨与单个进程的核心。因此,在具有4个内核的服务器上,我需要产生4个进程。
下面是当一个客户机希望连接到服务器群集所采取的步骤:
客户端最初与连通。IP是网关节点。网关会跟踪每台计算机上有多少客户端,并将连接请求转发给客户端数最少的计算机。
在每台机器上,都有一个Manager进程和X服务器进程,其中X是处理器上的核心数量(因为Python无法在核心之间扩展,所以我们需要生成4个核心以使用100%的四核处理器)
经理的工作是让多少客户对每个进程的轨道,以及其中是否崩溃重启进程。当连接请求从网关发送到管理器时,管理器查看该计算机上的服务器进程(图中的3),并将请求转发给拥有最少量客户端的任何进程。
服务器进程是实际不与客户的沟通。
这是3机器集群的样子。为了图表,假设每个节点有3个核心。 alt text http://img152.imageshack.us/img152/5412/serverlx2.jpg
这也让我想到了 - 我能实现这种热插拔吗?由于每个进程都由管理员控制,因此当我想要交换服务器进程的新版本时,我只需让经理知道它不应再发送更多连接,然后我将注册新版本进程旧的。只要客户端连接到旧版本,旧版本就会保持活动状态,然后在没有更多客户端时终止。
Phew。让我知道你们的想法。