[转]百万用户级游戏服务器架构设计服务器结构探讨--最简单的结构所谓服务器结构,也就是如何将服务器各部分合理地安排,以实现最初的功能需求
所以,结构本无所谓正确与错误;当然,优秀的结构更有助于系统的搭建,对系统的可扩展性及可维护性也有更大的帮助
好的结构不是一蹴而就的,而且每个设计者心中的那把尺都不相同,所以这个优秀结构的定义也就没有定论
在这里,我们不打算对现有游戏结构做评价,而是试着从头开始搭建一个我们需要的MMOG结构
对于一个最简单的游戏服务器来说,它只需要能够接受来自客户端的连接请求,然后处理客户端在游戏世界中的移动及交互,也即游戏逻辑处理即可
如果我们把这两项功能集成到一个服务进程中,则最终的结构很简单:client-----server嗯,太简单了点,这样也敢叫服务器结构
好吧,现在我们来往里面稍稍加点东西,让它看起来更像是服务器结构一些
一般来说,我们在接入游戏服务器的时候都会要提供一个帐号和密码,验证通过后才能进入
关于为什么要提供用户名和密码才能进入的问题我们这里不打算做过多讨论,云风曾对此也提出过类似的疑问,并给出了只用一个标识串就能进入的设想,有兴趣的可以去看看他们的讨论
但不管是采用何种方式进入,照目前看来我们的服务器起码得提供一个帐号验证的功能
我们把观察点先集中在一个大区内
在大多数情况下,一个大区内都会有多组游戏服,也就是多个游戏世界可供选择
简单点来实现,我们完全可以抛弃这个大区的概念,认为一个大区也就是放在同一个机房的多台服务器组,各服务器组间没有什么关系
这样,我们可为每组服务器单独配备一台登录服
最后的结构图应该像这样:loginServergameServer|/|/client该结构下的玩家操作流程为,先选择大区,再选择大区下的某台服务器,即某个游戏世界,点击进入后开始帐号验证过程,验证成功则进入了该游戏世界
但是,如果玩家想要切