功能服务的响应方法、系统、装置、终端及介质与流程
本申请涉及服务器架构领域,特别涉及一种功能服务的响应方法、系统、装置、终端及介质。
背景技术:
大型多人在线游戏(massivemultiplayeronlinegame,简称mmog)为服务器可以提供大量玩家同时在线的游戏,由于同时在线的玩家数目多,服务器压力大。
在相关技术中,在服务器的承载量达到上限时,除了通过架设更多的物理服务器或云服务器来解决以外,还将不同的功能模块进行拆分,相同的模块分布到一台服务器处理,由多组服务器集群共同组成服务模块的服务器,将所有关于数据库交互的进程都连接到数据库服务器来代理处理,组成一个完整的一个游戏服务端。
由于每增加一级服务器,所需要建立的通信链路增加,导致模块与模块之间通信的复杂度高,内存消耗大,在对客户端的消息的处理过程中,功能模块的服务器需要轮询每条建立的通信链路来获取消息状态,处理效率也会相对降低。
技术实现要素:
本申请提供了一种功能服务的响应方法、系统、装置、终端及介质,能够提高游戏服务端的处理效率。所述技术方案如下:
一方面,提供了一种功能服务的响应方法,应用于区域服务器,所述方法包括:
接收客户端发送的请求消息,所述请求消息用于请求向所述客户端提供功能服务;
确定所述请求消息对应的所述功能服务的服务请求类型;
响应于所述服务请求类型符合第一请求类型,向消息系统服务器发送所述请求消息,所述消息系统服务器用于根据功能服务器的服务响应能力与所述功能服务器进行交互,完成所述功能服务;
响应于所述服务请求类型符合第二请求类型,向所述功能服务器发送所述请求消息,所述功能服务器用于向所述客户端提供所述功能服务。
另一方面,提供了一种功能服务的响应方法,应用于消息系统服务器,所述方法包括:
接收区域服务器发送的请求消息,所述请求消息用于请求向客户端提供功能服务,所述请求消息为对应的服务请求类型符合第一请求类型时,所述区域服务器向消息系统服务器发送的消息;
根据所述请求消息确定对应的功能服务器;
向所述功能服务器发送所述请求消息,所述功能服务器用于根据所述请求消息进行所述功能服务的响应。
另一方面,提供了一种功能服务的响应系统,所述系统中包括:
区域服务器,用于接收客户端发送的请求消息,所述请求消息用于请求向所述客户端提供功能服务;确定所述请求消息对应的所述功能服务的服务请求类型;响应于所述服务请求类型符合第一请求类型,向消息系统服务器发送所述请求消息;响应于所述服务请求类型符合第二请求类型,向所述功能服务器发送所述请求消息;
所述消息系统服务器,用于接收所述区域服务器发送的所述请求消息;根据功能服务器的服务响应能力与所述功能服务器进行交互;
所述功能服务器,用于接收所述消息系统服务器发送的所述请求消息;完成所述功能服务。
另一方面,提供了一种功能服务的响应装置,所述装置包括:
第一接收模块,用于接收客户端发送的请求消息,所述请求消息用于请求向所述客户端提供功能服务;
第一确定模块,用于确定所述请求消息对应的所述功能服务的服务请求类型;
第一发送模块,用于响应于所述服务请求类型符合第一请求类型,向消息系统服务器发送所述请求消息,所述消息系统服务器用于根据功能服务器的服务响应能力与所述功能服务器进行交互,完成所述功能服务;
所述第一发送模块,还用于响应于所述服务请求类型符合第二请求类型,向所述功能服务器发送所述请求消息,所述功能服务器用于向所述客户端提供所述功能服务。
另一方面,提供了一种功能服务的响应装置,所述装置包括:
第二接收模块,用于接收区域服务器发送的请求消息,所述请求消息用于请求向客户端提供功能服务,所述请求消息为对应的服务请求类型符合第一请求类型时,所述区域服务器向消息系统服务器发送的消息;
第二确定模块,用于根据所述请求消息确定对应的功能服务器;
第二发送模块,用于向所述功能服务器发送所述请求消息,所述功能服务器用于根据所述请求消息进行所述功能服务的响应。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述本申请实施例中任一所述的功能服务的响应方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述本申请实施例中任一所述的功能服务的响应方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的功能服务的响应方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
区域服务器将接收到的客户端所发送的请求消息,根据请求消息对应的服务请求类型的不同,分别向消息系统服务器发送第一请求类型对应的请求消息,向功能服务器发送第二请求类型对应的请求消息,达到分类处理请求消息的效果,提高了游戏服务端的处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的实施环境示意图;
图2是本申请一个示例性实施例提供的功能服务器本机通信的方法示意图;
图3是本申请一个示例性实施例提供的功能服务器跨机通信的方法示意图;
图4是本申请一个示例性实施例提供的网络拓扑结构图;
图5是本申请一个示例性实施例提供的应用于区域服务器的功能服务的响应方法的流程图;
图6是本申请另一个示例性实施例提供的应用于区域服务器的功能服务的响应方法的流程图;
图7是本申请一个示例性实施例提供的应用于消息系统服务器的功能服务的响应方法的流程图;
图8是本申请一个示例性实施例提供的功能服务器节点主题示意图;
图9是本申请一个示例性实施例提供的功能服务的响应系统的结构框图;
图10是本申请一个示例性实施例提供的应用于区域服务器的功能服务的响应装置的结构框图;
图11是本申请一个示例性实施例提供的应用于消息系统服务器的功能服务的响应装置的结构框图;
图12是本申请一个示例性实施例提供的服务器的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,针对本申请实施例中涉及的名词进行简单介绍:
云技术(cloudtechnology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
其中,由于在搭建游戏服务器的过程中,对服务器的稳定性和业务连续性要求要求较高,故,可以选择基于云技术的云服务器进行运营。同时,使用云服务器也可以很好地实现服务器扩容和缩容。
云存储(cloudstorage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(id,identity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(raid,redundantarrayofindependentdisk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
数据库(db,database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。在游戏服务器的后台搭建过程中,需要多个数据库来存储游戏资源,根据不同的使用场景主要划分为玩家数据库、逻辑数据库、统计队列数据库和全服数据库,这些数据库可以实现在物理服务器中,也可实现在基于云存储的云服务器中。
数据库管理系统(dbms,databasemanagementsystem)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、xml(extensiblemarkuplanguage,可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如sql(structuredquerylanguage,结构化查询语言)、xquery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些dbms能够跨类别,例如,同时支持多种查询语言。
结合上述名词简介,对本申请实施例的实施环境进行说明。
示意性的,请参考图1,该实施环境中包括客户端101、网关服务102、区域服务器103、消息系统服务器104、功能服务器105、数据库服务器106和游戏服务端107。
客户端101是为玩家提供本地游戏服务的程序,安装并运行在客户机上,上述客户机可以是智能手机、平板电脑、便携式电脑、台式电脑等。可选的,客户端101是应用程序(application,app)或者网页客户端。客户端101用于向游戏服务端107发送和接收通信消息。
网关服务102是客户端101与游戏服务端107进行通信的中转站,负责将游戏服务端107与网络连接进行隔离,起到一定保护作用,使外部无法直接访问游戏服务端107,保障游戏服务端107的安全,减少外挂的攻击。可选的,网关服务102可以设立在网关服务器中,客户端101与网关服务器建立连接,通过网关服务器完成与游戏服务端107进行通信。
游戏服务端107包括区域服务器103、消息系统服务器104、功能服务器105和数据库服务器106。可选的,游戏服务端107为多进程程序,由多个物理服务器的服务器群集组成,区域服务器103、消息系统服务器104和功能服务器105都是独立的物理服务器。可选的,游戏服务端107由一个物理服务器组成,其中,区域服务器103、消息系统服务器104和功能服务器105为该物理服务器中的不同模块。可选的,游戏服务端107由物理服务器和云服务器组合构成,示意性的,区域服务器103和功能服务器105在一个或多个物理服务器中实现,消息系统服务器104在云服务器中实现。
一般的,游戏服务端107为客户端101按区服提供服务器,也即不同的区域服务器103接收来自客户端101中登录的不同区服的请求消息。可选的,区域服务器103按地理区域划分得到,如,将区域服务器103分为华东服务器、华北服务器、华南服务器、华中服务器等。可选的,区域服务器103按服务代理商的不同进行划分得到,如,将区域服务器103分为电信服务器和网通服务器。可选的,区域服务器103按客户端的操作系统进行划分得到,如,将区域服务器103分为安卓服务器和ios(iphoneoperationsystem,苹果移动设备操作系统)服务器。
区域服务器103接收来自网关服务102的通信消息,可选的,该通信消息可以是请求消息,向功能服务器105请求服务,比如,玩家通过客户端101向游戏服务端107发送副本创建请求,游戏服务端107接收请求并处理,将玩家在客户端中显示的角色从当前场景切换为副本场景。不同的请求消息的时延容忍度不同、请求频率不同,示意性的,游戏场景中角色的动作状态、技能施放等,时延容忍度低、请求频率高,需要游戏服务端即时做出响应,时延过高会影响玩家游戏体验;而像场景切换、玩家与玩家之间的聊天会话、商城打开和交易等,时延容忍度高、请求频率相对较低,游戏服务端的响应效率不用太高。
在本申请实施例中,区域服务器103将从网关服务102接收到的客户端101的请求消息,根据服务请求类型将其转发至消息系统服务器104或功能服务器105。其中,消息系统服务器104可实现请求消息的接收、发送、暂存和删除,消息系统服务器104中还存储有功能服务器105各个节点与地址的映射关系。可选的,消息系统服务器104可以是一台物理服务器、多台服务器组成的服务器群组或云服务器。
功能服务器105用于处理客户端101的请求消息,为客户端101提供功能服务。可选的,功能服务器105可分为两大类,即场景服务器和非场景服务器,场景服务器为具体负责游戏场景的服务器,一般的,玩家在经过注册、创建人物、登录角色之后就进入了场景服务器,场景服务器负责完成玩家各种操作的逻辑,场景服务器在接收到来自客户端101的请求消息之后,完成请求消息对应的游戏逻辑处理,并将处理结果有选择的广播回客户端101,场景服务器对游戏逻辑处理需要较高的处理效率,否则会直接影响玩家的同时在线适量,且影响玩家的游戏体验。
在一个示例中,多个功能服务器105之间通过基于共享内存的通信组件构件底层通信框架。本机通信的方法包括:请参考图2,通过第三方工具基于配置信息将进程201间的通道信息写入到共享内存(globalchannelinformationmap,gcim)202,通信的进程之间根据gcim202的信息挂载到对应通道203上,需要发送给对应进程的消息塞到对应通道里面,收包也是,遍历和本进程关联的每个通道进行收包,其中,gcim202由管理工具204创建和维护。跨机通信的方法包括:请参考图3,先通过写入工具305将通道303和地址的信息写入到基于共享内存的表(globalroutemap,grm)306中,业务进程301只需将消息写到对应的通道中,而通道对端地址对应的网络互联协议由通信组件307负责转发,其中,通信组件之间通过网络308连接。
数据库服务器106用于存储各个服务器的相关数据,可为游戏业务提供扩缩容、自动合服等功能,为游戏服务端进行数据备份、回档等科考数据存储服务。在一个示例中,区域服务器103、功能服务器105与数据库服务器106的网络拓扑结构如图4所示,n个模块401与m个进程402之间建立n*m条通信链路403,其中,n个模块401与数据库404连接,m个进程402又下设多个端口405,模块401为功能服务器105实现功能服务的模块,进程402为区域服务器103的运行活动。
结合上述名词简介和实施环境,对本申请实施例中提供的功能服务的响应方法进行说明,图5是本申请一个示例性实施例提供的功能服务的响应方法的流程图,本申请实施例以功能服务的响应方法应用于图1中的区域服务器103中进行举例说明,该方法包括:
步骤501,接收客户端发送的请求消息,请求消息用于请求向客户端提供功能服务。
在本申请实施例中,客户端包括强联网类游戏客户端,客户端中玩家角色的状态属性发生变化时,游戏服务端需要实时更新游戏中的角色状态,并且广播到周围玩家的客户端中,例如,玩家操作角色施放技能,其技能施放的攻击范围、伤害数值计算、技能施放结果等逻辑都由游戏服务端完成,客户端只需要负责技能特效的显示和过程中的实时数据交互。上述玩家操作角色施放技能的过程中,客户端发送技能施放的请求消息至游戏服务端,而游戏服务端完成技能施放的具体游戏逻辑后,将响应消息有选择的广播到发送请求的客户端和其他相关客户端中,即完成功能服务。
步骤502,确定请求消息对应的功能服务的服务请求类型。
在本申请实施例中,不同的请求消息对应请求的功能服务不同,因此不同的请求消息的时延容忍度不同、请求频率不同,示意性的,游戏场景中角色的动作状态、技能施放等,时延容忍度低、请求频率高,需要游戏服务端即时做出响应,时延过高会影响玩家游戏体验;而像场景切换、玩家与玩家之间的聊天会话、商城打开和交易等,时延容忍度高、请求频率相对较低,游戏服务端的响应效率不用太高。相应的,功能服务的服务请求类型包括第一请求类型和第二请求类型。对应于第一请求类型和第二请求类型,游戏服务端所需要的处理效率不同,第一请求类型的处理效率可低于第二请求类型。
步骤503,响应于服务请求类型符合第一请求类型,向消息系统服务器发送请求消息。
在本申请实施例中,第一请求类型的请求消息需要的处理效率相对较低,也即,客户端在发送请求之后,在一定时间间隔内接收到响应消息,就不会对玩家的游戏体验造成影响,因此区域服务器将请求消息发送给消息系统服务器,由消息系统服务器对请求消息做进一步处理。可选的,消息系统服务器用于根据功能服务器的服务响应能力与功能服务器进行交互,完成功能服务。
在本申请实施例中,服务请求类型根据请求消息对应的功能服务所需要的处理效率确定。可选的,服务请求类型根据时延容忍度数据确定,将用于请求时延容忍度高的功能服务的请求消息确定为符合第一请求类型;可选的,服务请求类型根据频率数据确定,将用于请求频率低的功能服务的请求消息确定为符合第一请求类型;可选的,服务请求类型根据预设时间段内的历史请求消息的请求频率确定,将预设时间段内历史请求消息少于预设次数的请求消息确定为符合第一请求类型,例如,在区域服务接收到请求消息的时刻之前的预设时间段内,未接收到与该请求消息请求相同功能服务的请求消息,则将该请求消息确定为符合第一请求类型;可选的,服务请求类型根据时延容忍度数据和频率数据共同确定,将时延容忍度高且请求频率低的功能服务的请求确定为符合第一请求类型。
步骤504,响应于服务请求类型符合第二请求类型,向功能服务器发送请求消息,功能服务器用于向客户端提供功能服务。
在本申请实施例中,第二请求类型的请求消息需要较高的处理效率,也即,客户端在发送请求消息之后,需要在很短的时间内就接收到响应消息,如游戏场景中人物的状态和技能施放等,因此区域服务器将请求消息直接发送给请求消息对应的功能服务器,由功能服务器完成游戏逻辑之后,反馈响应消息给客户端。
综上所述,本申请实施例提供的功能服务的响应方法,区域服务器将接收到的客户端所发送的请求消息,根据请求消息对应的服务请求类型的不同,分别向消息系统服务器发送第一请求类型对应的请求消息,向功能服务器发送第二请求类型对应的请求消息,达到分类处理请求消息的效果,提高了游戏服务端的处理效率。
结合上述实施例,以请求消息对应有时延容忍度数据为例,对本申请实施例中提供的功能服务的响应方法进行说明,请参考图6,其示出了一个示例性实施例提供的功能服务的响应方法的流程图。
步骤601,接收客户端发送的请求消息,请求消息对应有时延容忍度数据。
在本申请实施例中,区域服务器接收客户端发送的请求消息,可选的,在请求消息的消息头中写有时延容忍度数据,区域服务器读取消息头中的时延容忍度数据;可选的,区域服务器中存储有请求消息对应的功能服务与时延容忍度数据的对应关系,如当请求消息请求的是对技能施放的逻辑处理服务,该请求消息对应的时延容忍度数据为50ms,当请求消息请求的是打开商城的处理服务,该请求消息对应的时延容忍度数据2s,区域服务器直接根据请求消息请求的功能服务类型来确定时延容忍度数据。
步骤602,确定请求消息对应的功能服务的服务请求类型。
在本申请实施例中,可选的,区域服务器根据请求消息请求对应的功能服务,来确定请求消息的服务请求类型;可选的,该请求消息的消息头设置有类型标识,区域服务器根据请求标识确定服务请求类型,例如,类型标识为第一类型标识时,区域服务器确定第一类型标识对应的请求消息为场景请求消息,类型标识为第二类型标识时,区域服务器确定第二类型标识对应的请求消息为非场景请求消息;可选的,区域服务器读取请求消息的消息头中设置的相关数据,根据相关数据确定服务请求类型,该相关数据可以是时延容忍度数据、频率数据、历史请求数据等。
步骤603,将时延容忍度数据与容忍度等级进行匹配。
在本申请实施例中,区域服务器读取请求消息的消息头中设置的时延容忍度数据,将时延容忍度数据与存储的容忍度等级进行匹配,可选的,时延容忍度数据范围与容忍度等级对应,例如,时延容忍度数据大于100ms,与第一级容忍度匹配,时延容忍度数据小于等于100ms,与第二级容忍度匹配。
步骤604,响应于时延容忍度数据与第一级容忍度匹配,确定服务请求类型符合第一请求类型,向消息系统服务器发送请求消息。
区域服务器确定请求消息对应的服务请求类型符合第一请求类型,也即,该请求消息所需要的处理效率要求相对较低,区域服务器将其发送至消息系统服务器进行处理。
在本申请实施例中,消息系统服务器还可根据该请求消息的相关数据对请求消息做进一步处理。可选的,该相关数据可以是时效数据、消息标识等。时效数据为请求消息的有效时间,在批量请求出现时,存在游戏服务端过载的风险,为保证游戏核心内容的体验,会对请求消息进行分类和部分丢弃,故每个请求消息设定有时效数据,在时效时间内还未递交至功能服务器,则会被消息系统服务器丢弃,例如,在场景切换过程中,玩家对世界频道的会话消息丢失的容忍度高,场景切换请求导致频道会话消息获取请求在消息系统服务器中停留时间超过该会话消息获取请求的时效时间,消息系统服务器将请求直接丢弃,减少功能服务器的处理压力,帮助功能服务器从过载状态恢复。
消息标识为唯一标识请求消息的标识,功能服务器中维护有该标识的对应标识,功能服务器在未接收到该请求消息时,可以通过对应标识向消息系统服务器进行回溯查询,获取该请求消息,当功能服务器接收到该请求消息之后,更新功能服务器中维护的对应标识,用于接收下一请求标识。
步骤605,响应于时延容忍度数据与第二级容忍度匹配,确定服务请求类型符合第二请求类型,向功能服务器发送请求消息。
区域服务器确定请求消息对应的服务请求类型符合第二请求类型,也即,该请求消息所需要的处理效率要求相对较高,区域服务器将其直接发送至功能服务器进行处理。
可选的,请求消息还对应有频率数据,根据频率数据来确定将请求消息发送给消息系统服务器还是功能服务器。区域服务器接收客户端发送的请求消息,请求消息对应有频率数据,根据频率数据确定请求消息对应的功能服务的服务请求类型,例如,请求消息对应的功能服务为战斗逻辑计算,频率数据为10次/s,区域服务器确定该请求消息为高频请求,将其直接发送至功能服务器进行处理,请求消息对应的功能服务为商城开启请求,频率为10次/min,区域服务器确定该请求消息为低频请求,将其发送至消息系统服务器进行预处理,再发送至功能服务器进行逻辑处理。
可选的,请求消息还对应有历史请求次数,该历史请求次数为区域服务器接收到当前请求消息的时刻之前的预设时段内,历史请求同一功能服务的请求消息的次数,例如,区域服务器接收到请求提供战斗逻辑计算的请求消息,在接收到该请求消息之前的5s内,区域服务器还接收到过10个同样请求提供战斗逻辑计算的请求消息,则区域服务器将该请求消息直接发送至功能服务器进行处理;区域服务器接收到请求开启商城的请求消息,在接收到该请求消息之前的5s内,区域服务器未接收到过同样请求开启商城的请求消息,则区域服务器将该请求消息发送至消息系统服务器。
可选的,区域服务器根据请求消息对应的时延容忍度数据和频率数据共同确定请求消息发送给消息系统服务器还是功能服务器。在一个示例中,时延容忍度数据和频率数据占有不同的权重,比如,时延容忍度数据占0.8的权重,频率数据占0.2的权重,区域服务器根据上述两种数据的权重计算,将对应的功能服务为时延容忍度高而请求频率低的请求消息发送给消息系统服务器,将时延容忍度低而请求频率高的请求消息发送给功能服务器。
综上所述,本申请实施例提供的功能服务的响应方法,区域服务器将接收到的客户端所发送的请求消息,根据请求消息对应的时延容忍度数据的不同,分别向消息系统服务器发送时延容忍度高的请求消息,向功能服务器发送时延容忍度低的请求消息,达到分类处理请求消息的效果,提高了游戏服务端的处理效率。
请参考图7,其示出了一示意性实施例所提供的功能服务的响应方法流程图,本申请实施例以功能服务的响应方法应用于图1中的消息系统服务器104中进行举例说明,该方法包括:
步骤701,接收区域服务器发送的请求消息。
上述请求消息用于请求向客户端提供功能服务,请求消息为对应的服务请求类型符合第一请求类型时,区域服务器向消息系统服务器发送的消息。
在本申请实施例中,消息系统服务器接收来自区域服务器转发的请求消息,该请求消息对应的服务请求类型符合第一请求类型,也即,该请求消息的处理效率要求较低。可选的,消息系统服务器接收区域服务器发送的时延容忍度数据与第一容忍度匹配的请求消息。消息系统服务器可以将该请求消息进行属性判断、转发、存储、删除等操作。
步骤702,根据请求消息确定对应的功能服务器。
消息系统服务器确定请求消息所请求的功能服务对应的功能服务器。可选的,消息系统服务器根据时延容忍度数据验证该请求消息对应的功能服务的服务请求类型符合第一请求类型。可选的,请求消息设置有功能标识,消息系统服务器根据功能标识确定该请求消息投递的功能服务器。可选的,请求消息设置有该请求消息投递的目标功能服务器的地址,消息系统服务器中存储有功能服务器节点与地址的映射关系,消息系统服务器根据地址确定该请求消息投递的功能服务器。
步骤703,向功能服务器发送请求消息。
在本申请实施例中,上述功能服务器用于根据请求消息进行功能服务的响应。消息系统服务器根据请求消息的相关数据,对其进行预设处理。可选的,请求消息对应有时效数据,消息系统服务器确定时效数据是否在时效范围内,响应于所述时效数据在时效范围内,向所述功能服务器发送所述请求消息;响应于所述时效数据不在时效范围内,即消息已过期,则删除所述请求消息,也即,不响应该过期请求消息,在游戏服务端过载的情况下,删除过期请求消息,可以帮助游戏服务端从过载状态恢复。
可选的,请求消息对应有请求标识,该请求标识对应至少两个所述功能服务器。消息系统服务器将请求消息发送至至少两个功能服务器,至少两个功能服务器用于根据负载评估结果对该请求消息进行处理。消息系统服务器将请求消息发送至至少两个所述功能服务器,至少两个功能服务器用于根据负载评估结果对该请求消息进行处理。在一个实例中,请参考图8,多个功能服务器的节点映射地址编为一个组,这些节点801共同订阅消息系统服务器802中的同一主题803。
上述至少两个功能服务器可以是完成相同功能服务的功能服务器不同节点或服务器,消息系统服务器中存储有各个功能服务器的各个节点实例与地址的映射关系,该映射关系可以根据功能服务器的增设和减少进行对应修改。可选的,消息系统服务器接收到请求消息后,确定该请求消息对应的功能服务,查询得到能够实现该功能服务的功能服务器及各个功能服务节点,向各个节点发送负载查询命令,根据查询得到的各个节点的负载状况进行判定,将请求消息发送至负载状况良好的功能服务器节点;可选的,消息系统服务器接收到请求消息后,确定该请求消息对应的功能服务,查询得到能够实现该功能服务的功能服务器及各个功能服务节点,将该请求消息发送至这些功能服务节点,各个功能服务节点根据自身的负载状况和其他节点的负载状况确定进行请求消息处理的功能服务节点。
在本申请实施例中,消息系统服务器还响应功能服务器发送的定时消息,该方法包括:接收功能服务器发送的定时消息,上述定时消息用于向客户端提供定时功能服务,定时消息中设定有定时时刻;响应于系统时刻达到所述定时时刻,向所述区域服务器发送所述定时消息。在一个示例中,游戏官方设置节日活动,开发人员提前修改地图服务器中地图的样式和设置任务服务器中的节日任务,地图服务器将修改地图样式的定时消息投递到消息系统服务器中,任务服务器将增设节日任务的定时消息投递消息系统服务器中,在未到达节日当天时,客户端的游戏地图样式不变,没有新的节日任务出现,到达节日当天时,消息系统服务器将上述两个定时消息投递至各个区域服务器,再由区域服务器通过网关服务发送至客户端,更改客户端中地图显示样式并增加节日任务。
综上所述,本申请实施例提供的功能服务的响应方法,消息系统服务器接收区域服务器发送的时延容忍度高的请求消息,并根据请求消息对应的特征,对其进行转发、存储或删除等操作,降低了区域服务器与功能服务器通信的复杂度,减小共享内存的内存消耗,提高了游戏服务端的处理效率。
请参考图9,其示出了一示意性实施例所提供的功能服务的响应系统的结构框图,该系统包括:
区域服务器910,用于接收客户端发送的请求消息911,请求消息用于请求向客户端提供功能服务;确定请求消息对应的功能服务的服务请求类型912;响应于服务请求类型符合第一请求类型,向消息系统服务器发送请求消息913;响应于服务请求类型符合第二请求类型,向功能服务器发送请求消息914。
可选的,请求消息对应有时延容忍度数据,区域服务器910还用于将时延容忍度数据与容忍度等级进行匹配;响应于时延容忍度数据与第一级容忍度匹配,确定服务请求类型符合第一请求类型;向消息系统服务器发送请求消息;响应于时延容忍度数据与第二级容忍度匹配,确定服务请求类型符合第二请求类型;向功能服务器发送请求消息。
可选的,区域服务器910还用于接收消息系统服务器发送的定时消息,定时消息用于向客户端提供定时功能服务,定时消息中设定有定时时刻,且定时消息为消息系统服务器中的系统时刻达到定时时刻时发送的消息;向客户端发送定时消息。
消息系统服务器920,用于接收区域服务器发送的请求消息921;根据功能服务器的服务响应能力与功能服务器进行交互922。
可选的,请求消息对应有时效数据,消息系统服务器920还用于确定时效数据是否在时效范围内;响应于时效数据在时效范围内,向功能服务器发送请求消息;响应于时效数据不在时效范围内,删除请求消息。
可选的,消息系统服务器920还用于接收功能服务器发送的定时消息,定时消息用于向客户端提供定时功能服务,定时消息中设定有定时时刻;响应于系统时刻达到定时时刻,向区域服务器发送定时消息。
可选的,请求消息对应有请求标识,请求标识对应至少两个所述功能服务器,消息系统服务器920还用于将请求消息发送至至少两个功能服务器,至少两个功能服务器用于根据负载评估结果对请求消息进行处理。
功能服务器930,用于接收区域服务器或消息系统服务器发送的请求消息931;完成功能服务932。
综上所述,本申请实施例提供的功能服务的响应系统,区域服务器将接收到的客户端所发送的请求消息,根据请求消息对应的服务请求类型的不同,分别向消息系统服务器发送第一请求类型对应的请求消息,向功能服务器发送第二请求类型对应的请求消息,达到分类处理请求消息的效果,提高了游戏服务端的处理效率。由于消息系统服务器的存在,可以通过消息系统服务器实现动态的服务扩容缩容和负载均衡;当功能服务器产生进程级故障或机器故障时,消息系统服务器可以实现自动的故障隔离;通过消息系统服务器缓存请求消息,可以解决区域服务器和功能服务器处理能力适配导致的请求消息丢失问题;由于消息系统服务器内存储功能节点与地址的映射关系,当需要上线新的服务模块时,无需将功能服务模块与区域服务器一一对接,只需要增加消息系统服务器中的映射关系,实现无侵入的功能上线;同时,消息系统的设立可以降低游戏服务端的开发成本。
请参考图10,是本申请一个示例性实施例提供的功能服务的响应装置的结构框图,该装置应用于区域服务器,该装置包括:
第一接收模块1001,用于接收客户端发送的请求消息,请求消息用于请求向客户端提供功能服务;
第一确定模块1002,用于确定请求消息对应的功能服务的服务请求类型;
第一发送模块1003,用于响应于服务请求类型符合第一请求类型,向消息系统服务器发送请求消息,消息系统服务器用于根据功能服务器的服务响应能力与功能服务器进行交互,完成功能服务;
第一发送模块1003,还用于响应于服务请求类型符合第二请求类型,向功能服务器发送请求消息,功能服务器用于向客户端提供功能服务。
可选的,请求消息对应有时延容忍度数据,第一接收模块1001还用于将时延容忍度数据与容忍度等级进行匹配;第一发送模块1003还用于响应于时延容忍度数据与第一级容忍度匹配,确定服务请求类型符合第一请求类型;向消息系统服务器发送所述请求消息。
可选的,第一发送模块1003还用于响应于时延容忍度数据与第二级容忍度匹配,确定服务请求类型符合第二请求类型;向功能服务器发送请求消息。
可选的,第一接收模块1001还用于接收消息系统服务器发送的定时消息,定时消息用于向客户端提供定时功能服务,定时消息中设定有定时时刻,且定时消息为消息系统服务器中的系统时刻达到定时时刻时发送的消息;第一发送模块1003还用于向所述客户端发送所述定时消息。
综上所述,在本申请实施例提供的功能服务的响应装置中,区域服务器将接收到的客户端所发送的请求消息,根据请求消息对应的服务请求类型的不同,分别向消息系统服务器发送第一请求类型对应的请求消息,向功能服务器发送第二请求类型对应的请求消息,达到分类处理请求消息的效果,提高了游戏服务端的处理效率。
请参考图11,是本申请一个示例性实施例提供的功能服务的响应装置的结构框图,该装置应用于消息系统服务器,该装置包括:
第二接收模块1101,用于接收区域服务器发送的请求消息,请求消息用于请求向客户端提供功能服务,请求消息为对应的服务请求类型符合第一请求类型时,区域服务器向消息系统服务器发送的消息;
第二确定模块1102,用于根据请求消息确定对应的功能服务器;
第二发送模块1103,用于向功能服务器发送请求消息,功能服务器用于根据请求消息进行功能服务的响应。
可选的,请求消息对应有时延容忍度数据,第二接收模块1101还用于根据时延容忍度数据验证请求消息对应的功能服务的服务请求类型符合第一请求类型。
可选的,请求消息对应有时效数据,第二确定模块1102还用于确定时效数据是否在时效范围内;第二发送模块1103还用于响应于时效数据在时效范围内,向功能服务器发送所述请求消息;响应于时效数据不在时效范围内,删除请求消息。
可选的,第二接收模块1101还用于接收功能服务器发送的定时消息,定时消息用于向客户端提供定时功能服务,定时消息中设定有定时时刻;第二发送模块1103还用于响应于系统时刻达到定时时刻,向区域服务器发送定时消息。
可选的,请求消息对应有请求标识,请求标识对应至少两个功能服务器;第二发送模块1103还用于将请求消息发送至至少两个功能服务器,至少两个功能服务器用于根据负载评估结果对请求消息进行处理。
综上所述,在本申请实施例提供的功能服务的响应装置中,消息系统服务器接收区域服务器发送的时延容忍度高的请求消息,并根据请求消息对应的特征,对其进行转发、存储或删除等操作,降低了区域服务器与功能服务器通信的复杂度,减小共享内存的内存消耗,提高了游戏服务端的处理效率。
图12示出了本申请一个示例性实施例提供的服务器的结构示意图。该具体来讲:
服务器1200包括中央处理单元(centralprocessingunit,cpu)1201、包括随机存取存储器(randomaccessmemory,ram)1202和只读存储器(readonlymemory,rom)1203的系统存储器1204,以及连接系统存储器1204和中央处理单元1201的系统总线1205。服务器1200还包括用于存储操作系统1213、应用程序1214和其他程序模块1215的大容量存储设备1206。
大容量存储设备1206通过连接到系统总线1205的大容量存储控制器(未示出)连接到中央处理单元1201。大容量存储设备1206及其相关联的计算机可读介质为服务器1200提供非易失性存储。也就是说,大容量存储设备1206可以包括诸如硬盘或者紧凑型光盘只读存储器(compactdiscreadonlymemory,cd-rom)驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、可擦除可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、带电可擦可编程只读存储器(electricallyerasableprogrammablereadonlymemory,eeprom)、闪存或其他固态存储其技术,cd-rom、数字通用光盘(digitalversatiledisc,dvd)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1204和大容量存储设备1206可以统称为存储器。
根据本申请的各种实施例,服务器1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1200可以通过连接在系统总线1205上的网络接口单元1211连接到网络1212,或者说,也可以使用网络接口单元1211来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由cpu执行。
本申请的实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的功能服务的响应方法。可选地,该计算机设备可以是终端,也可以是服务器。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行,以实现上述各方法实施例提供的功能服务的响应方法。
本申请的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的功能服务的响应方法。
可选地,该计算机可读存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、固态硬盘(ssd,solidstatedrives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(reram,resistancerandomaccessmemory)和动态随机存取存储器(dram,dynamicrandomaccessmemory)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除