欢迎光临小豌豆知识网!
当前位置:首页 > 生活技术 > 运动娱乐> 游戏服务器系统及游戏服务器的数据处理方法独创技术27223字

游戏服务器系统及游戏服务器的数据处理方法

2021-02-27 18:59:58

游戏服务器系统及游戏服务器的数据处理方法

  技术领域

  本发明涉及游戏技术领域,尤其涉及一种游戏服务器系统及游戏服务器的数据处理方法。

  背景技术

  随着智能终端的普及,用户使用智能终端进行游戏的体验是最为常见的使用方式。在进行游戏时,用户需操作智能终端激活游戏应用程序,并与游戏提供商的游戏服务器通信连接,以交互游戏数据。

  参阅图1,为现有技术中客户端与游戏服务器的通信系统示意图,由于该服务器的架构,客户端与游戏服务器的交互过程中具有以下问题:

  1:未实现游戏时的同服体验

  由于服务器架构内,针对每一区服均具有独立的服务器组,无法实现游戏同服,玩家在进入游戏前需要手动选择具体的区服,且各区服间独立运行,无数据交叉。

  2:服务器资源使用不均衡

  由于针对每一个区服都要配备同样的服务器架构,若每个区服的活跃人数不同,每个服务器的资源使用就不均衡,活跃多的区服可能会崩溃,活跃少的区服会浪费资源。

  3:容量扩展难

  随着游戏不断的运营,玩家的人数也会不断增加,应对新增的玩家。服务器系统中只能通过增加新的游戏区服来应对,每增加新的游戏区服便需要运维配置完整的架构服务器,扩展负担较重。

  4:服务器伸缩难

  若单个区服的玩家太多,会造成服务器压力增加,只能通过提高服务器的配置来应对;而若单个区服的活跃玩家变少,服务器的资源变得空闲,则也只能通过降低服务器的配置来应对。这种通过修改服务器配置伸缩调整,大大提高了运维成本和风险。

  5:游戏应用跨服难

  若需要实现跨服玩法,需要在架构之外再设计一个跨服服务器来提供跨服服务,开发难度比较大。

  因此,需要一种新型的游戏服务器系统,可实现资源共享,避免了资源的浪费。

  发明内容

  为了克服上述技术缺陷,本发明的目的在于提供一种游戏服务器系统及游戏服务器的数据处理方法,通过各服务器的分隔及对应关系,可实现服务器系统的快速伸缩性调整。

  本发明公开了一种游戏服务器系统,游戏服务器系统包括:

  数据库组,包括至少一个数据区单元,其内存储游戏玩家的数据;

  网关服务器组,与游戏玩家的客户端通信连接,接收客户端发出的登陆指令,其中,网关服务器组包括至少一个网关服务器,与任意数据区单元通信连接;

  账号服务器组,与网关服务器组通信连接,接收网关服务器组生成的校验指令,校验游戏玩家的账号的正确性,并反馈游戏玩家的账号的绑定数据区单元至网关服务器组;

  逻辑服务器组,包括至少一个逻辑服务器,与网关服务器组通信连接,且每一逻辑服务器匹配一数据区单元;

  网关服务器组根据绑定数据区单元查找与绑定数据区单元匹配的逻辑服务器,并调用逻辑服务器内的游戏玩家的数据,以将对应于登陆指令的登录结果发送至客户端。

  优选地,游戏服务器系统还包括负载均衡服务器,与客户端通信连接,客户端自负载均衡服务器获取网关服务器组内的任一网关服务器的地址以建立通信链路;

  校验指令包括游戏玩家的账号信息及校验请求,账号服务器组包括至少一个账号服务器,与任意数据区单元通信连接;

  当账号服务器验证账号信息为新账号时,任意选定一数据区单元与新账号绑定,并反馈与新账号绑定的数据区单元至网关服务器组内的任一网关服务器。

  优选地,游戏服务器系统还包括:

  存储服务器组,分别与逻辑服务器及数据库组通信连接,包括至少一个存储服务器,且每一存储服务器匹配一逻辑服务器;

  当登录结果为登陆成功时,任一网关服务器接收客户端生成的游戏逻辑请求,并转发游戏逻辑请求至与绑定数据区单元对应的逻辑服务器;

  逻辑服务器处理游戏逻辑请求并生成变动数据,以存储至与其匹配的存储服务器;

  存储服务器周期性地将变动数据发送至数据库组。

  优选地,网关服务器组根据绑定数据区单元查找与绑定数据区单元匹配的逻辑服务器,并调用逻辑服务器内的游戏玩家的数据时,向逻辑服务器发送一加载请求;

  逻辑服务器根据加载请求,发送一数据读出请求至任意存储服务器;

  存储服务器根据数据读出请求,反馈游戏玩家的游戏数据至逻辑服务器;

  逻辑服务器根据对游戏数据初始化后,反馈游戏数据至网关服务器,以供网关服务器发送登录结果至客户端。

  优选地,游戏服务器系统还包括:

  匹配服务器组,与逻辑服务器组通信连接,包括至少一个匹配服务器,每一匹配服务器与与任意数据区单元通信连接;

  任一网关服务器接收客户端生成的战斗请求,并转发战斗请求至与绑定数据区单元对应的逻辑服务器;

  逻辑服务器发送一调用请求至任意匹配服务器,匹配服务器查找匹配队列中的与其他战斗请求关联的其他调用请求,当不同战斗请求匹配时,匹配服务器生成一远程请求。

  优选地,游戏服务器系统还包括:

  战斗服务器组,与匹配服务器组及逻辑服务器组通信连接,包括至少一个战斗服务器,每一战斗服务器与任意数据区单元通信连接;

  任一战斗服务器接收远程请求以创建一战斗实例,并发送战斗实例的实例地址至匹配服务器,匹配服务器经网关服务器发送实例地址至客户端,建立客户端与战斗服务器的通信连接。

  优选地,战斗服务器向客户端展示战斗过程,并与战斗过程结束后,发送战斗结果值逻辑服务器,由逻辑服务器根据战斗结果发放战斗奖励至客户端。

  本发明还公开了一种游戏服务器的数据处理方法,包括以下步骤:

  一负载均衡服务器与游戏玩家的客户端通信连接,客户端自负载均衡服务器获取网关服务器组内的任一网关服务器的地址以建立通信链路;

  游戏玩家的客户端发出登录指令至网关服务器组中的任一网关服务器;

  网关服务器组生成校验指令并发送至账号服务器组中的任一账号服务器;

  账号服务器校验游戏玩家的账号的正确性,并反馈数据库组内游戏玩家的账号的绑定数据区单元至网关服务器;

  网关服务器组根据绑定数据区单元查找与绑定数据区单元匹配的逻辑服务器,并调用逻辑服务器内的游戏玩家的数据,以将对应于登陆指令的登录结果发送至客户端。

  优选地,数据处理方法还包括以下步骤:

  当登录结果为登陆成功时,任一网关服务器接收客户端生成的游戏逻辑请求,并转发游戏逻辑请求至与绑定数据区单元对应的逻辑服务器;

  逻辑服务器处理游戏逻辑请求并生成变动数据,以存储至与其匹配的存储服务器;

  存储服务器周期性地将变动数据发送至数据库组。

  优选地,数据处理方法还包括以下步骤:

  任一网关服务器接收客户端生成的战斗请求,并转发战斗请求至与绑定数据区单元对应的逻辑服务器;

  逻辑服务器发送一调用请求至匹配服务器组内的任意匹配服务器,匹配服务器查找匹配队列中的与其他战斗请求关联的其他调用请求,当不同战斗请求匹配时,匹配服务器生成一远程请求;

  任一战斗服务器接收远程请求以创建一战斗实例,并发送战斗实例的实例地址至匹配服务器,匹配服务器经网关服务器发送实例地址至客户端,建立客户端与战斗服务器的通信连接;

  战斗服务器向客户端展示战斗过程,并与战斗过程结束后,发送战斗结果值逻辑服务器,由逻辑服务器根据战斗结果发放战斗奖励至客户端。

  采用了上述技术方案后,与现有技术相比,具有以下有益效果:

  1.游戏服务器内的所有服务器均面向所有数据去单元,游戏玩家进入游戏时不再需要选择区服,账号服务器可均衡地把各游戏玩家分配至不同的数据区;

  2.服务器内不再出现资源过载或资源空闲的情况,可负载均衡地使用;

  3.在游戏玩家和玩家数据不断扩增的情况下,可简易地扩增数据区单元来扩增游戏服务器系统的容量;

  4.针对服务器压力的变动,可以通过修改服务器所服务的数据区单元范围来进行合理的伸缩,更加快捷,也可以自动部署新的服务器来分担数据区,提高性能;

  5.每个服务器组均面向数据区单元进行服务的,只要服务多个数据区单元便能支持跨服玩法的设计。

  附图说明

  图1为现有技术中游戏服务器系统的结构示意图;

  图2为符合本发明一优选实施例中游戏服务器系统的结构示意图;

  图3为符合本发明一优选实施例中游戏服务器的数据处理方法的流程示意图。

  具体实施方式

  以下结合附图与具体实施例进一步阐述本发明的优点。

  这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

  在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

  应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

  在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

  在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。

  在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。

  参阅图2,为符合本发明一优选实施例中游戏服务器系统的结构示意图,为实现如上所述的有益效果,本实施例中游戏服务器系统的架构设计为:

  -数据库组

  本实施例证的游戏服务器系统内的各单元、模块或组件可分布式架构或集中部署,最为关键的,游戏服务器系统包括有数据库组,数据库组用于存储游戏玩家的数据,更为具体地,本实施例中数据库组包括至少一个数据区单元,通过对数据库组分区,各数据区单元的数据相互隔离,互不干扰。

  -网关服务器组

  网关服务器组作为游戏服务器系统的网关之用,与游戏玩家的客户端通信连接,从而接受游戏玩家在运行游戏应用时,向客户端输入的各种操作指令。当游戏玩家刚激活游戏应用时,游戏应用将向用户展示登录界面,要求用户登录后进行登录人物的操作。因此,游戏玩家在客户端上操作,输入账号名称、密码作为登陆信息(或客户端已保存有账号名称、密码),并点击确认后发送登陆指令至网关服务器组。尤其是,网关服务器组与客户端间具有负载均衡服务器,且客户端从负载均衡服务器获取某一网关服务器的网络地址,以进行连接,连接成功后请求游戏应用所协定的登录协议,网关服务器将进行连接安全监测,判断当前已登录的游戏玩家数量是否已超过上限,或该游戏玩家的登录账号是否已在黑名单内。

  网关服务器组内包括有至少一个网关服务器,每一网关服务器均可与任意多个客户端通信连接,且与数据库组内任意数据区单元通信连接。也就是说,网关服务器与数据库组内的数据区单元不具有一一对应的关系,所有数据区单元均可服务于任意一个网关服务器,当某一或某些网关服务器承担过多的登录请求时,可分配接收登陆指令的需求至其他网关服务器(网关服务器可与任意数据区单元通信连接,不会出现无法验证登录请求的情况发生),由此,以均衡网关服务器前部负载,使得压力分担。

  -账号服务器组

  账号服务器组与网关服务器组通信连接,当网关服务器组内的某一或某些网关服务器接收客户端发出的登录指令后,将生成一校验指令,以校验游戏玩家的游戏账号的正确性。当对游戏账号的校验结果为,该游戏用户的游戏账号为第一次进入游戏时,则将向该游戏账号分配一数据区单元,则该游戏账号将被存储至该数据区单元内,即与该数据区单元绑定;若校验结果为,该游戏用户的游戏账号并非第一次进入游戏时,则查找已绑定该游戏玩家的账号的绑定数据区单元,并将查找后的绑定数据区单元反馈至网关服务器组,以告知网关服务器组,虽游戏应用已不再分区(用户登录后,在交互界面显示的仅有一个区服),但在网关服务器组侧,已知悉账号的绑定数据区单元。

  -逻辑服务器组

  逻辑服务器组与网关服务器组通信连接,其内包括至少一个逻辑服务器,每一逻辑服务器匹配有一数据区单元,则每一逻辑服务器仅与与其匹配(或绑定)的数据区单元交互。

  在网关服务器组内的网关服务器接收到绑定数据区单元的信息后,查找与绑定数据区单元匹配的逻辑服务器,并远程调用该逻辑服务器,以加载该逻辑服务器内的游戏玩家的玩家数据。逻辑服务器加载玩家数据后,会反馈玩家数据至网关服务器,在网关服务器收到后,将返回登录结果值客户端,例如登录成功,或登录失败。

  通过上述配置,由于网关服务器组及账号服务器组内的网关服务器及账号服务器为任意选择与逻辑服务器组及数据区单元连接,因此,当网关服务器组与账号服务器组需要与其他服务器组通信交互时,可不再局限于指定的网关服务器及账号服务器,整个游戏服务器系统可根据负载情况选择空闲的、或当前具有一定运算能力的服务器使用。

  一优选实施例中,校验指令包括游戏玩家的账号信息及校验请求,账号服务器组内包括至少一个账号服务器,账号服务器与数据区单元不具有一一对应关系,反之,可与任意的数据区单元通信连接。当网关服务器检测游戏玩家为正常时,意为检测通过,则网关服务器将发送账号信息及校验请求至任意的账号服务器,账号服务器验证游戏玩家的游戏账号的正确性,若该账号信息为新账号,即代表该游戏用户为首次进入游戏时,将分配一任意的数据区单元至该新账号,并与其绑定,所绑定的数据区单元将被反馈至任意网关服务器。通过上述配置,新游戏玩家的账号不局限于某一区服,而是可以和所有老游戏玩家一样,在相同的区服或不同的区服内游戏,对于数据区单元而言,所分配的绑定数据区单元完全可以依照已有负载、已有账号量等来选定,增加了游戏服务器系统的灵活性。

  可以理解的是,游戏玩家登录后,将进行游戏体验,例如游戏内的战斗操作,策略操作等。对此,游戏服务器系统还包括存储服务器组,分别与逻辑服务器组及数据库组通信连接,其内包括至少一个存储服务器,且每一个存储服务器匹配一个逻辑服务器。客户端显示游戏玩家登录成功后,通过游戏玩家在客户端上的操作,将生成游戏逻辑请求,例如请求战斗、请求武器的变更、英雄技能的更换等对于游戏本身的操作,这些游戏逻辑请求将通过客户端转发至与绑定数据区单元匹配的逻辑服务器。逻辑服务器收到游戏逻辑请求后,开始处理游戏逻辑,例如确认战斗双方、双方战斗力、阵容、武器、英雄的信息变更等,处理完毕后,形成变动数据,并记录在自身内存内,并周期性地发送打包后的变动数据至与其匹配的存储服务器进行写入。存储服务器收到玩家数据后,先保存在自身内存内,并周期性地发送到数据库组内的绑定数据区单元内以存储。

  可以理解的是,上述实施例中,存储服务器与逻辑服务器及数据区单元的匹配关系,不一一固定对应,而是可针对所有的数据区单元任意选定,同样避免了负载扎堆。

  进一步地,为实现网关服务器调用逻辑服务器内的游戏玩家的数据,网关服务器将在查找提供与绑定的数据区单元对应服务器的逻辑服务器后,向逻辑服务器发送一加载请求,要求远程调用逻辑服务器以加载游戏玩家的数据。根据该加载请求,逻辑服务器将发送数据读出请求至任意的存储服务器,或更有优选地,给对应于该绑定的数据区单元的存储服务器。存储服务器将首先判断其自身内存中是否有该游戏玩家的游戏数据,若无,则向绑定的数据区单元获取,若有,则直接利用,反馈游戏玩家的游戏数据至逻辑服务器。逻辑服务器收到游戏数据后,对其进行数据初始化,处理完毕后,反馈游戏数据至网关服务器,由网关服务器反馈登录结果至客户端,以完成游戏玩家的账号登录流程。

  游戏逻辑处理完毕后,当用户需要在游戏内操作进行战斗时,将执行匹配战斗流程,对此,游戏服务器系统还包括匹配服务器组,其与逻辑服务器组通信连接,包括至少一个匹配服务器,每一个匹配服务器可与任意一个数据区单元通信连接,且每次所选择的数据区单元可不同。客户端由游戏玩家的操作生成战斗请求后,例如指向其他游戏玩家的人物,进行切磋、战斗要求,网关服务器将接收该战斗请求,并转发战斗请求至与绑定数据区单元对应的逻辑服务器。逻辑服务器首先判断该有游戏玩家的人物是否具有发起战斗的条件,例如等级、战斗力、剩余战斗次数等,满足条件后,逻辑服务器形成调用请求至任意一个匹配服务器,以远程调用匹配服务器加入匹配队列,匹配服务器将不断扫描队列中的所有游戏玩家以进行匹配,匹配对象,为其他游戏玩家发出的其他战斗请求所关联的其他调用请求,双方匹配时,匹配服务器生成一远程请求,以完成战斗准备。

  为实现战斗过程,游戏服务器系统还包括战斗服务器组,分别与匹配服务器组及逻辑服务器组通信连接,其内包括至少一个战斗服务器,每一个战斗服务器与任意数据区单元通信连接,同样地,每次所选择的数据区单元可不同。战斗服务器自匹配服务器接收远程请求后,将根据负载规则创建一个战斗实例(如数据区单元的负载上限),并发送该战斗实例的实例地址至匹配服务器,匹配服务器会把战斗实例的实例地址经网关服务器回复给客户端,以建立客户端与战斗服务器的通信连接,用户可通过实例地址接入战斗过程,由战斗服务器向客户端展示战斗过程,并在战斗结束后,战斗服务器将发送战斗结果至逻辑服务器,由逻辑服务器根据战斗结果发放战斗奖励至客户端。

  总之,优选实施例中,网关服务器、账号服务器、匹配服务器、战斗服务器与数据区单元的连接关系不限于一一对应,每次登陆、战斗匹配时,可选定任意的数据区单元实施。而逻辑服务器、存储服务器,记录游戏玩家首次登陆时选定的数据区单元后,其次将始终使用所绑定的数据区单元,由此解决同服游戏的架构设计问题,并将游戏服务器架构的计算、扩展和伸缩能力更强,实现难度更低。

  可以理解的是,虽然账号服务器对应于任意的数据区单元,但仍支持游戏玩家建立多个游戏角色,不同游戏角色的数据可以分配到不同的数据区单元,相当于游戏玩家的小号。而在网关服务器选定逻辑服务器及数据区单元时,可支持两种转发模式:

  第一种:指定转发:网关服务器根据账号服务器返回的数据区单元的编号,找到对应的逻辑服务器。由于逻辑服务器在启动时,会向“服务发现软件”注册自己服务的数据区范围。网关服务器在转发之前将查询哪个逻辑服务器服务该游戏账号的数据区单元,进行指定转发。指定转发的模式主要针对有状态的服务器,如:逻辑服务器组、存储服务器组。

  第二种:均衡转发:针对无状态的服务器,如:账号服务器组、匹配服务器组、战斗服务器组。由于无状态的服务器是服务所有的数据区单元,所以网关服务器在转发的时候,是按这些服务器的负载,均衡转发。

  参阅图3,本发明还公开了一种游戏服务器的数据处理方法,包括以下步骤:

  S100:一负载均衡服务器与游戏玩家的客户端通信连接,客户端自负载均衡服务器获取网关服务器组内的任一网关服务器的地址以建立通信链路;

  S200:游戏玩家的客户端发出登录指令至网关服务器组中的任一网关服务器;

  S300:网关服务器组生成校验指令并发送至账号服务器组中的任一账号服务器;

  S400:账号服务器校验游戏玩家的账号的正确性,并反馈数据库组内游戏玩家的账号的绑定数据区单元至网关服务器;

  S500:网关服务器组根据绑定数据区单元查找与绑定数据区单元匹配的逻辑服务器,并调用逻辑服务器内的游戏玩家的数据,以将对应于登陆指令的登录结果发送至客户端。

  一优选实施例中,数据处理方法还包括以下步骤:

  S600:当登录结果为登陆成功时,任一网关服务器接收客户端生成的游戏逻辑请求,并转发游戏逻辑请求至与绑定数据区单元对应的逻辑服务器;

  S700:逻辑服务器处理游戏逻辑请求并生成变动数据,以存储至与其匹配的存储服务器;

  S800:存储服务器周期性地将变动数据发送至数据库组。

  进一步地,数据处理方法还包括以下步骤:

  S900:任一网关服务器接收客户端生成的战斗请求,并转发战斗请求至与绑定数据区单元对应的逻辑服务器;

  S1000:逻辑服务器发送一调用请求至匹配服务器组内的任意匹配服务器,匹配服务器查找匹配队列中的与其他战斗请求关联的其他调用请求,当不同战斗请求匹配时,匹配服务器生成一远程请求;

  S1100:任一战斗服务器接收远程请求以创建一战斗实例,并发送战斗实例的实例地址至匹配服务器,匹配服务器经网关服务器发送实例地址至客户端,建立客户端与战斗服务器的通信连接;

  S1200:战斗服务器向客户端展示战斗过程,并与战斗过程结束后,发送战斗结果值逻辑服务器,由逻辑服务器根据战斗结果发放战斗奖励至客户端。

  客户端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的客户端以及诸如数字TV、台式计算机等等的固定终端。下面,假设终端是客户端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。

  应当注意的是,本发明的实施例有较佳的实施性,且并非对本发明作任何形式的限制,任何熟悉该领域的技术人员可能利用上述揭示的技术内容变更或修饰为等同的有效实施例,但凡未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何修改或等同变化及修饰,均仍属于本发明技术方案的范围内。

《游戏服务器系统及游戏服务器的数据处理方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)