游戏服务器集群的制作方法

xiaoxiao2021-2-23  113

游戏服务器集群的制作方法【
技术领域
】[0001]本发明涉及游戏领域,尤其涉及一种游戏服务器集群。【
背景技术
】[0002]游戏服务器一般的服务器的区别是,游戏服务器是多读多写即快速读取大量和快速写入大量数据的服务器,而一般的服务器如Web服务器是多读少写,这就限制了游戏服务器的人数和响应速度的瓶颈。服务器的瓶颈大概有三块:1、连接数量限制的压力问题;2、数据库读写速度限制的问题;3、速度实时同步计算压力问题。[0003]除一般游戏服务器的瓶颈,大型多人在线角色扮演游戏(MM0RPG),由于其角色扮演类,虚拟道具类他要存储的属性,又相对于页游(网页游戏)来说有更多的技能和特效,这对服务器的计算压力又是一瓶颈。基于上述设计的瓶颈,对于游戏还有一些运行组织维护的难题。例如即对于用户的行为分析,很多公司都是借助其他的部门来分析,而在上述架构的游戏设计方案中,并没有提供用户行为分析的方案,在后续的服务器应用中给游戏的分析带来了很大的麻烦,有些分析要查询大量的数据还不一定分析出来,比如外挂问题,刷钱的问题等,一直是困扰整个行业的一大难题。[0004]因此,现急需一种便于在游戏中快速读写数据的新型架构。【
发明内容】[0005]为了解决现有技术中存在的问题,本发明提供一种游戏服务器集群,包括:[0006]网关服务器,用于使玩家登入网络;[0007]登陆服务器,用于在所述玩家登入网络后使该玩家登入游戏;[0008]公共信息服务器,用于保存玩家的公共信息;[0009]游戏服务器,用于在游戏运行时处理玩家逻辑;[0010]物理数据库,用于保存游戏数据以在游戏运行时供玩家调取;以及[0011]内存数据库服务器,连接于所述登陆服务器和所述物理数据库之间,用于保存部分游戏数据为第一数据,以供所述登陆服务器直接调取,当所述第一数据不包含所述登陆服务器需调取的数据时,所述登陆服务器再向所述物理数据库调取数据。[0012]可选的,所述内存数据库服务器还用于实时保存游戏运行时产生的第二数据,并将所述第二数据定时保存至所述物理数据库中。[0013]可选的,所述第二数据为频繁变化的业务逻辑和耗时严重的数据。[0014]可选的,所述游戏服务器重启时加载所述内存数据库服务器中的数据。[0015]可选的,所述第一数据包括用户验证信息,所述登陆服务器通过所述验证信息验证玩家身份以实现登陆。[0016]可选的,所述内存数据库服务器包括哈希表,并通过所述哈希表存储数据。[0017]可选的,所述游戏数据包括地图、装备、玩家等级和玩家经验等数据。[0018]可选的,所述的游戏服务器集群还包括角色创建服务器,用于在玩家首次登陆时创建角色。[0019]可选的,公共信息服务器包括房间服务器和玩家管理服务器,所述房间服务器用于创建房间并保存玩家的房间信息,所述玩家管理服务器用于用于保存玩家的公共信息。[0020]可选的,所述网关服务器为多个服务器构成的服务器集群。[0021]本发明提供一种游戏服务器集群,包括网关服务器、登陆服务器、公共信息服务器、游戏服务器和物理数据库,并设置了连接于登陆服务器和物理数据库之间的内存数据库服务器,用于保存部分游戏数据为第一数据,以供所述登陆服务器直接调取,当所述第一数据不包含登陆服务器需调取的数据时,所述登陆服务器再向物理数据库调取数据。如此一来,解决了多读多写游戏服务器的瓶颈问题,能够实时的给海量数据进行排序并且能够提高玩家的读档速度和地图跳转速度,使得读写数据库和数据同步不成为瓶颈。【附图说明】[0022]图1为本发明一实施例所述游戏服务器集群的结构示意图。【具体实施方式】[0023]为解决连接的限制和数据库1/0(读写)操作慢和数据同步慢的问题,发明人想到架设内存数据库服务器集群来解决数据库读写和连接访问数量限制的问题。[0024]以下结合附图和具体实施例对本发明作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比率,仅用以方便、明晰地辅助说明本发明实施例的目的。[0025]本发明的游戏服务器集群如图1所示,包括[0026]网关服务器10,用于使玩家登入网络;[0027]登陆服务器20,用于在所述玩家登入网络后使该玩家登入游戏;[0028]公共信息服务器30,用于保存玩家的公共信息;[0029]游戏服务器40,用于在游戏运行时处理玩家逻辑;[0030]物理数据库50,用于保存游戏数据以在游戏运行时供玩家调取;以及[0031]内存数据库服务器60,连接于所述登陆服务器20和所述物理数据库50之间,用于保存部分游戏数据为第一数据,以供所述登陆服务器20直接调取,当所述第一数据不包含所述登陆服务器20需调取的数据时,所述登陆服务器20再向所述物理数据库50调取数据。[0032]在本实施例中,上述的游戏数据地图、装备、玩家等级和玩家经验等数据。通过本发明的服务器集群,通过绕过多读多写物理数据库50(DBServer),直接读取内存数据库服务器60中的第一数据的方法,解决了多读多写物理数据库50(DBServer)的瓶颈问题。另夕卜,还能实时的给海量数据进行排序,如玩家等级,经验,技能等,并且能够提高玩家的读档速度和地图跳转速度,使得读写数据库和数据同步的过程不成为瓶颈。本发明的内存数据库可以和物理数据库相互补充。[0033]在本实施例中,内存数据库服务器60除了存储部分游戏数据以外,还用于实时保存游戏运行时产生的第二数据,并将所述第二数据定时保存至所述物理数据库中。即内存数据库服务器60同时具备分担物理数据库50的存储任务外,还能在游戏运行时实时将产生的数据存入,方便实时调取。具体的,所述第二数据为频繁变化的业务逻辑和耗时严重的数据。在优选方案中,内存数据库服务器60采用可持久化的内存数据库技术,它采用key-value的方式维护一张或多张Maptable(哈希表)来实现快熟高效的数据读取和写入。[0034]在玩家的逻辑中,设计内存数据库服务器60,用户保存一些频繁变化的业务逻辑和耗时严重的数据,如当有玩家的金币的变化,我们可以先存到内存数据库服务器60中,用内存数据的key-value的哈希表来记录相应的数据,能够实时的排序,并且单独开线当前第1页1 2  程定时保存到物理数据库50中。保存失败或者其他的不能保存内存数据库服务器60中的数据,再直接保存到物理数据库50(DB Server)中。内存数据库服务器60集群是独立游戏服务器之外的服务器业务,内存数据库服务器60若出现异常,可以直接读写物理数据库50(DBServer)。如果游戏服务器40(Game Server)死机,而内存数据库服务器60已经完成相应的同步操作,则在游戏服务器40重启时再把内存数据库服务器60中的值加载进来。这样就不会丢失数据,能够保存数据的完整性,不至于丢失玩家信息,造成数据回档使玩家出现损失。
[0035]在本实施例中,第一数据包括用户验证信息,所述登陆服务器20通过所述验证信息验证玩家身份以实现登陆。具体而言,登陆服务器20集群可以负载均衡到各个单点登陆服务器。而在登陆检查中,可以从内存数据库服务器60中告诉获取连接信息,用户快速验证登陆。例如,玩家通过内存数据库服务器60中的哈希表,根据用户的Key值快速的定位到用户信息部分验证信息,并把用户的一些信息返回给客户端,如此,即减少了登陆和加载时间,并且提高连接的最大吞吐量。
[0036]本发明的游戏服务器集群还包括角色创建服务器70,用于在玩家首次登陆时创建角色。由于公测初期有大量的用户创建,并发吞吐量很大,为不影响其他玩家的业务逻辑,因此单独创建一服务器集群来完成角色的创建以快速的搭建起角色。
[0037]如图1所示,公共信息服务器30用于保存玩家的公共信息,其具体包括房间服务器31和玩家管理服务器32,所述房间服务器31用于创建房间并保存玩家的房间信息,所述玩家管理服务器用于保存玩家的基础公共信息。具体的,创建角色完后,房间服务器31(LobbyServer)创建房间,保存玩家的所在的房间信息,这样即保存了一些公共的信息例如地图信息。房间创建完成后,进入玩家管理服务器32(MGMT Server),保存中玩家的基础公共信息,如玩家的家族、家园等公共信息。
[0038]网关服务器10为多个服务器构成的服务器集群。如图1所示,多个网关服务器10构成网关服务器集群,网关服务器10用户过滤掉一些禁止的IP和一些非法的用户连接,这样避免登陆服务器和非法用户直接连接并造成各种问题。同时部署多台网关服务器可以解决登陆瓶颈,在Window的10CP中一台最大的连接数是WORD类型,值是65535,所以最大的限制是6万多的连接,在加上一些其他的网络和业务的限制也只有2000-5000的在线人数,网关服务器10集群加上登陆服务器20可以扩展相应的万级连接数量。
[0039]本发明的游戏服务器集群设置了连接于所述登陆服务器20和所述物理数据库50之间的内存数据库服务器60,用于保存部分游戏数据为第一数据,以供所述登陆服务器20直接调取,当所述第一数据不包含所述登陆服务器20需调取的数据时,所述登陆服务器20再向所述物理数据库50调取数据。具体的,对于需要实时排序等属性,先存放内存数据库中,然后在设定时间段单独开线程保存数据库。读取时,可以先读内存数据库集群,没有找到数据再去访问物理数据库50来读取数据。这样就解决了多读多写DBServer的瓶颈问题,能够实时的给海量数据进行排序,例如玩家等级、经验、技能等数据,并且能够提高玩家的读档速度和地图跳转速度,使得读写数据库和数据同步不成为瓶颈。另外,内存数据库服务器60可以和物理数据库相互补充,当游戏服务器40关机的时候,保存在内存数据库服务器60中的数据可以恢复,而不会丢失。
[0040]显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
【主权项】
1.一种游戏服务器集群,其特征在于,包括 网关服务器,用于使玩家登入网络; 登陆服务器,用于在所述玩家登入网络后使该玩家登入游戏; 公共信息服务器,用于保存玩家的公共信息; 游戏服务器,用于在游戏运行时处理玩家逻辑; 物理数据库,用于保存游戏数据以在游戏运行时供玩家调取;以及 内存数据库服务器,连接于所述登陆服务器和所述物理数据库之间,用于保存部分游戏数据为第一数据,以供所述登陆服务器直接调取,当所述第一数据不包含所述登陆服务器需调取的数据时,所述登陆服务器再向所述物理数据库调取数据。2.如权利要求1所述的游戏服务器集群,其特征在于,所述内存数据库服务器还用于实时保存游戏运行时产生的第二数据,并将所述第二数据定时保存至所述物理数据库中。3.如权利要求2所述的游戏服务器集群,其特征在于,所述第二数据为频繁变化的业务逻辑和耗时严重的数据。4.如权利要求2所述的游戏服务器集群,其特征在于,所述游戏服务器重启时加载所述内存数据库服务器中的数据。5.如权利要求1所述的游戏服务器集群,其特征在于,所述第一数据包括用户验证信息,所述登陆服务器通过所述验证信息验证玩家身份以实现登陆。6.如权利要求1所述的游戏服务器集群,其特征在于,所述内存数据库服务器包括哈希表,并通过所述哈希表存储数据。7.如权利要求1所述的游戏服务器集群,其特征在于,所述游戏数据包括地图、装备、玩家等级和玩家经验等数据。8.如权利要求1所述的游戏服务器集群,其特征在于,还包括角色创建服务器,用于在玩家首次登陆时创建角色。9.如权利要求1所述的游戏服务器集群,其特征在于,公共信息服务器包括房间服务器和玩家管理服务器,所述房间服务器用于创建房间并保存玩家的房间信息,所述玩家管理服务器用于用于保存玩家的公共信息。10.如权利要求1所述的游戏服务器集群,其特征在于,所述网关服务器为多个服务器构成的服务器集群。
【专利摘要】本发明提供一种游戏服务器集群,包括网关服务器、登陆服务器、公共信息服务器、游戏服务器和物理数据库,并设置了连接于登陆服务器和物理数据库之间的内存数据库服务器,用于保存部分游戏数据为第一数据,以供所述登陆服务器直接调取,当所述第一数据不包含登陆服务器需调取的数据时,所述登陆服务器再向物理数据库调取数据。如此一来,解决了多读多写游戏服务器的瓶颈问题,能够实时的给海量数据进行排序并且能够提高玩家的读档速度和地图跳转速度,使得读写数据库和数据同步不成为瓶颈。
【IPC分类】H04L29/08, H04L29/06
【公开号】CN105491029
【申请号】CN201510843873
【发明人】刘高, 李小勇, 朱江平
【申请人】盛趣信息技术(上海)有限公司
【公开日】2016年4月13日
【申请日】2015年11月26日

最新回复(0)