本文主要探讨如何设计一款百万人同时在线的棋牌类网络游戏服务器系统,如果您发现本文的设计上存在漏洞或不对的地方欢迎提出共同探讨。

1.总体架构图


 

: CMS(control and manage server) : 控制管理服务器. GateServer : 门服务器

2.相关服务器介绍

注:除CMS外每台服务器都由两个程序实例构成,服务器管理客户端和服务器程序。

2.1 控制管理服务器(CMS

CMS的作用是管理和配置所有的服务器。主备账号服务器、主备GATE服务器的切换也是由CMS决定的,服务器管理员通过CMS来管理所有的服务器。

2.2 账号服务器

账号服务器的主要用于处理用户注册和登录游戏系统。用户是否重复登录游戏也将在账号服务器上处理。账号服务器由主备构成,任何时候只有主账号服务器负责和客户端及GATE服务器交互;备用账号服务器主要处理CMS发来的控制消息及主账号服务器发来的实时数据备份消息,及其他服务器发来的心跳消息。

2.3 门服务器(GateServer

门服务器的作用是负责各服务器之间的消息转发,确定用户的资料在哪台数据库服务器上。门服务器也分为主用和备用两台,除CMS外的其他服务器只和主用的门服务器交互。当CMS发现主用门服务器故障时将通知其他服务器进行主备切换。

2.4 大厅服务器

当用户登录成功后将和大厅服务器保持长连接以实时获取游戏系统的信息。

2.5 游戏服务器

当用户在大厅中点击进入某个游戏时,用户将登录相应的游戏服务器进行游戏。

2.6 数据库服务器

数据库服务器主要保存用户的资料和用户的游戏数据。

2.7 消息服务器

主要负责用户聊天消息的处理。

3.流程介绍

3.1 系统启动流程


如图所示,系统最先启动的是CMS,当CMS启动之后将从本地数据库读取相关服务器配置信息,只有本地配置中存在的服务器才可以连接本系统正常工作;这样就可以保证只有合法的服务器才能连接到本系统以防止非法服务器的接入。当门服务器启动并连接CMSCMS将选择其中一个作为主用门服务器。接下来依次启动的是数据库服务器,大厅服务器,游戏服务器,消息服务器。最后启动的是账号服务器。

3.2 添加一台新服务器流程



3.3 用户登录流程




posted on 2008-09-11 17:15 司强 阅读(78) 评论(2)  编辑 收藏 引用

评论

# re: 论百万人同时在线棋牌类网络游戏服务器设计 2008-09-11 18:14 

帐号服务器的用户数据如何与数据库服务器同步?定期吗?当用户登录游戏服务器后,应该同大厅服务器断开连接吧?所有用户均向一台帐号服务器登录吗?  回复  更多评论   

# re: 论百万人同时在线棋牌类网络游戏服务器设计 2008-09-11 18:28 Hideto

用户流程简化来看:
前端LoadBalance -> 用户认证服务器组 -> LoadBalance -> 大厅服务器组 -> LoadBalance -> 游戏服务器组

1,访问前端LoadBalance,负载均衡,建立到一个用户认证服务器的新连接
2,访问用户认证服务器,用户输入登录id和密码进行认证,通过后断开连接,负载均衡,建立到一个大厅服务器的新连接
3,访问大厅服务器,用户选择一款游戏,断开连接,LoadBalance,建立到一个游戏服务器的新连接
4,开始游戏  回复  更多评论   



只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


posts - 94, comments - 138, trackbacks - 0, articles - 94

Copyright © RichardHe