天龙服务器架构

                                                       天龙服务器架构

1、整体架构

                       图1  服务器架构图

 

2、架构解析

1BillingServer

        计费系统服务器,点卡收费时的产物。现主要用于账号验证、游戏点兑换、游戏推广卡兑奖等功能。连接帐号数据库。这个程序访问的数据都是由运维部门维护的,所以BillingServer最好由平台部门来维护,并且可以全公司都使用统一的标准。

2LoginServer

     游戏登陆服务器,连接游戏数据库,处理创建角色、删除角色及加载角色信息逻辑。与billingworld通信。客户端先连接login,加载角色数据之后再连接到相应的gameserver

3World

     游戏世界服务器,承载游戏世界的公共数据,并负责各个gameserver之间消息转发。处理通用功能,如邮件、帮会等。

4GameServer

     游戏场景服务器,每个gameserver承载一部分游戏场景。Gameserver处理角色进入游戏及场景心跳逻辑

5Sharememory

     共享内存程序。程序开辟一块共享内存用于缓存游戏数据,gameserver和world定时把数据写入共享内存,sharememory程序定时把数据写入游戏数据库。

 

3、架构存在的问题

(1)Login负责角色数据的加载,与GameServer是独立开的,需要重选角色时,只能退出到登陆界面,而不能退出到选人界面(如果要这么做的话,Login程序的功能会较复杂)

(2)客户端先连接Login,验证成功后,断开与Login连接,再连接到相应的GameServer,这样客户端很有可能会在连接GameServer时失败。

(3)每个GameServer分别承载不同的场景,角色切场景时,如果两个场景在不同的服务器,客户端需要断开第一个服务器,再连接到另一个服务器,这个过程中很容易造成连接失败(网络原因)导致掉线。

(4)角色切换服务器时,如果第一个服务器数据还未存储完,则角色数据会在两个服务器的共享内存中同时存在,两个服务器的shm都在往数据库中写同一角色数据,在极端情况下,会造成角色数据不正确。

猜你喜欢

转载自blog.csdn.net/qdslp/article/details/9149623