游戏服务器架构中的中心节点

议会制 Vs 君主制

分布式的服务器架构有点像议会制度,每一个节点都可以参与制定管理策略,进行一部分工作(征税,作战或是处理游戏逻辑,存储)。中心集中式的服务器(比如比较古老的单进程服务器架构),则把所有工作集于一身,自己爱干嘛就干嘛,毫无约束。他们的缺点也很明显,对于议会制,关键时刻谁说了算,会不会出现僵持;对于君主制,君主会不会玩火,万一君主仙逝了,会不会出现黑暗时代。于是,我们发现了一种更加平衡的制度。

 

元老院制度

古罗马时,元老院和执政官是权利的两级(当然,其实还有公民大会,但公民大会往往是站在元首一边的)。特别是到了奥古斯都时期,元首完全接管了重要事务的决策,而元老院也会进行一些制衡和支持。比如,一些相对富庶的行省会由元老院来接管,他们只需要负责把征收到的税按一定比例支付给皇帝(元首)即可。对于,元首提出的议案,他们也有权进行表决,决定一项法律最终是否可以通过,或是一项议题是否可以落实。元首为了表达自己不是皇帝,让广大市民以为他并不是专制的,他自称自己为“第一公民”。

1stGame的优势

默认决策人。

把一些需要反复调度又比较稳定的流程(比如登陆,充值回调处理)交给他,简化框架复杂度。并不是所有模块都迫切需求并行的(多个Game可以实现并行,增加吞吐量),并行的同时往往会带来复杂度,所以需要进行权衡。

管理分布式节点。

给分布式节点编号命名。获取各个节点的状态,收集信息,辅助节点之间连接的建立。

调度分布式节点。

分布式节点只需要连接上1stGame,就可以直接获取整个网络的信息。而类似于组建服务器网络(启动服务器进程组),解散服务器进程组(关服),在有一个调度人的情况下会更加简单。

注意的地方

禁止逻辑泛滥

中心节点压力逻辑过大,会无法保证其工作的稳定性,造成需要支持热更新等额外的代价。我们希望1stGame是一个micro core的服务节点,逻辑非常稳定,构造非常简单。

关注计算压力

单节点可能会成为服务器组的阿克琉斯之踵,这一点勿容置疑。所以,我们需要避开一些高负载的工作,让1stGame去进行工作的调度,而不是具体的工作本身。

安全性

因为可以付费全局的控制,应该特别安全。比如,应该没有直接的对外端口开放(或仅有限制ip的对外端口),专门的登陆通道安全认证。

猜你喜欢

转载自blog.csdn.net/narlon/article/details/82835638
今日推荐