一种游戏中的信息处理方法及装置与流程

文档序号:21036381发布日期:2020-06-09 20:26阅读:208来源:国知局
一种游戏中的信息处理方法及装置与流程

本申请涉及计算机技术领域,尤其是涉及一种游戏中的信息处理方法及装置。



背景技术:

随着互联网的快速发展,在游戏中也能够与其他玩家进行交流和沟通,并且,与其他玩家交流、沟通也成为了游戏中必不可少的部分。为此,很多游戏中都设有虚拟聊天室,为玩家们提供一个或多个公用频道,所有加入该虚拟聊天室的玩家都能够自由发言,并能够查看其他玩家的发言。

由于虚拟聊天室的负载能力有限,无法一次性地容纳所有玩家,游戏厂商通常为游戏的聊天系统配置多个服务器,将玩家分散到多个聊天室当中,并提供虚拟聊天室切换的通道。然而,由于玩家通常会选择热度较高,即在线人数较多的虚拟聊天室进入,使负载较高的虚拟聊天室的负载持续增高,而在线人数较少的虚拟聊天室很少有玩家进入,导致了服务器资源分配不协调,造成了资源的浪费,并加重了高负载虚拟聊天室崩溃的风险。



技术实现要素:

有鉴于此,本申请的目的在于提供一种游戏中的信息处理方法及装置,能够均衡各个聊天服务器的负载,降低服务器崩溃的风险,减少资源浪费。

本申请实施例提供了一种游戏中的信息处理方法,应用于聊天服务器,所述方法包括:

获取所述聊天服务器上运行的至少一虚拟聊天室的第一负载信息;

基于每个所述虚拟聊天室的第一负载信息,确定所述聊天服务器的第二负载信息;

将所述第二负载信息发送至一中转服务器,所述中转服务器用于响应客户端发送的聊天室进入请求,根据所述第二负载信息为所述客户端分配至一聊天服务器;

若检测到所述中转服务器分配给所述聊天服务器的客户端,则根据所述聊天服务器上运行的至少一虚拟聊天室的所述第一负载信息,确定分配给所述客户端的目标虚拟聊天室。

在一种可能的实施方式中,所述第一负载信息包括该虚拟聊天室的在线人数、在线人数上限、聊天消息转发速度以及聊天消息转发速度上限;

所述根据获取到的至少一聊天服务器的第二负载信息,为所述客户端分配至一聊天服务器,包括:

基于每个所述虚拟聊天室的在线人数及在线人数上限,确定所述聊天服务器的在线人数和在线人数上限,以及所述聊天服务器上运行的使用中的虚拟聊天室的数量和虚拟聊天室的总量;

基于每个所述虚拟聊天室的聊天消息转发速度及聊天消息转发速度上限,确定所述聊天服务器的聊天消息转发速度及聊天消息转发速度上限。

在一种可能的实施方式中,所述根据所述聊天服务器上运行的至少一虚拟聊天室的所述第一负载信息,确定分配给所述客户端的目标虚拟聊天室,包括:

针对每个虚拟聊天室,根据确定的该虚拟聊天室的所述第一负载信息,确定该虚拟聊天室的在线人数与在线人数上限之间的第一比值,以及该虚拟聊天室的聊天消息转发速度与聊天消息转发速度上限之间的第二比值;

将所述第一比值和第二比值中,数值最大的比值作为所述聊天服务器的第一负载值;

基于每个虚拟聊天室的第一负载值,确定分配给所述客户端的目标虚拟聊天室。

在一种可能的实施方式中,所述基于每个虚拟聊天室的第一负载值,确定分配给所述客户端的目标虚拟聊天室,包括:

按照每个虚拟聊天室对应的第一负载值的大小,分别将每个虚拟聊天室的信息写入多个聊天室分配队列中;其中,不同的聊天室分配队列对应不同的负载值范围;

从所述多个聊天室分配队列中,选择所述第一负载值在目标负载范围内的聊天室分配队列,将选择的聊天室分配队列中第一负载值最高的虚拟聊天室作为分配给所述客户端的目标虚拟聊天室。

在一种可能的实施方式中,所述方法还包括:

将所述目标虚拟聊天室的信息推送给所述客户端,以使所述客户端加入所述目标虚拟聊天室。

在一种可能的实施方式中,所述方法还包括:

响应所述客户端发送的消息转发请求,向所述目标虚拟聊天室内的其它客户端广播所述消息转发请求中携带的转发消息。

本申请实施例还提供了一种游戏中的信息处理方法,应用于中转服务器,所述方法包括:

响应客户端发送的聊天室进入请求,根据获取到的至少一聊天服务器的第二负载信息,为所述客户端分配至一聊天服务器,以使被分配到所述客户端的聊天服务器根据自身上运行的至少一虚拟聊天室的第一负载信息,确定分配给所述客户端的目标虚拟聊天室。

在一种可能的实施方式中,所述第二负载信息包括该聊天服务器的在线人数、在线人数上限、聊天消息转发速度、聊天消息转发速度上限、使用中的虚拟聊天室的数量以及虚拟聊天室的总量;

所述根据获取到的至少一聊天服务器的第二负载信息,为所述客户端分配至一聊天服务器,包括:

针对每个所述聊天服务器,根据该聊天服务器的所述第二负载信息,确定该聊天服务器的在线人数与在线人数上限之间的第三比值,该聊天服务器的使用中的虚拟聊天室的数量与虚拟聊天室的总量之间的第四比值,以及该聊天服务器的聊天消息转发速度与聊天消息转发速度上限之间的第五比值;

将所述第三比值、第四比值和第五比值中,数值最大的比值作为该聊天服务器的第二负载值;

基于每个聊天服务器的第二负载值,确定为所述客户端分配的聊天服务器。

在一种可能的实施方式中,所述基于每个聊天服务器的第二负载值,确定为所述客户端分配的一聊天服务器,包括:

按照每个聊天服务器对应的第二负载值的大小,分别将每个聊天服务器的信息写入多个服务器分配队列中;其中,不同的服务器分配队列对应不同的负载值范围;

将对应的第二负载值的平均值最小的服务器分配队列中,对应的第二负载值最高的聊天服务器作为为所述客户端分配的聊天服务器。

在一种可能的实施方式中,所述方法还包括:

若对应的所述第二负载值的平均值最小的服务器分配队列中,对应的第二负载值最高的聊天服务器的第二负载值已达到上限值,则随机从该服务器分配队列中抽取一个聊天服务器,作为为所述客户端分配的聊天服务器。

在一种可能的实施方式中,所述方法在确定为所述客户端分配的聊天服务器之后,还包括:

根据为所述客户端分配的聊天服务器的第二负载值随其自身的在线人数的变化规律,预测将所述客户端分配至该聊天服务器后,该聊天服务器的第二负载值;

基于所述预测的第二负载值的大小,更新该聊天服务器在所述多个服务器分配队列中的位置。

本申请实施例还提供一种游戏中的信息处理装置,用于聊天服务器,所述装置包括:

获取模块,用于获取所述聊天服务器上运行的至少一虚拟聊天室的第一负载信息;

确定模块,用于基于每个所述虚拟聊天室的第一负载信息,确定所述聊天服务器的第二负载信息;

发送模块,用于将所述第二负载信息发送至一中转服务器,所述中转服务器用于响应客户端发送的聊天室进入请求,根据所述第二负载信息为所述客户端分配至一聊天服务器;

聊天室分配模块,用于若检测到所述中转服务器分配给所述聊天服务器的客户端,则根据所述聊天服务器上运行的至少一虚拟聊天室的所述第一负载信息,确定分配给所述客户端的目标虚拟聊天室。

在一种可能的实施方式中,所述第一负载信息包括该虚拟聊天室的在线人数、在线人数上限、聊天消息转发速度以及聊天消息转发速度上限;

所述确定模块,具体用于:

基于每个所述虚拟聊天室的在线人数及在线人数上限,确定所述聊天服务器的在线人数和在线人数上限,以及所述聊天服务器上运行的使用中的虚拟聊天室的数量和虚拟聊天室的总量;

基于每个所述虚拟聊天室的聊天消息转发速度及聊天消息转发速度上限,确定所述聊天服务器的聊天消息转发速度及聊天消息转发速度上限。

在一种可能的实施方式中,所述聊天室分配模块具体用于:

针对每个虚拟聊天室,根据确定的该虚拟聊天室的所述第一负载信息,确定该虚拟聊天室的在线人数与在线人数上限之间的第一比值,以及该虚拟聊天室的聊天消息转发速度与聊天消息转发速度上限之间的第二比值;

将所述第一比值和第二比值中,数值最大的比值作为所述聊天服务器的第一负载值;

基于每个所述虚拟聊天室的第一负载值,确定分配给所述客户端的目标虚拟聊天室。

在一种可能的实施方式中,所述聊天室分配模块在基于每个所述虚拟聊天室的第一负载值,确定分配给所述客户端的目标虚拟聊天室时,具体用于:

按照每个所述虚拟聊天室对应的第一负载值的大小,分别将每个所述虚拟聊天室的信息写入多个聊天室分配队列中;其中,不同的聊天室分配队列对应不同的负载值范围;

从所述多个聊天室分配队列中,选择所述第一负载值在目标负载范围内的聊天室分配队列,将选择的聊天室分配队列中第一负载值最高的虚拟聊天室作为分配给所述客户端的目标虚拟聊天室。

在一种可能的实施方式中,所述装置还包括:

推送模块,用于将所述目标虚拟聊天室的信息推送给所述客户端,以使所述客户端加入所述目标虚拟聊天室。

在一种可能的实施方式中,所述装置还包括:

广播模块,用于响应所述客户端发送的消息转发请求,向所述目标虚拟聊天室内的其它客户端广播所述消息转发请求中携带的转发消息。

本申请实施例还提供一种游戏中的信息处理装置,用于中转服务器,包括:

服务器分配模块,用于响应客户端发送的聊天室进入请求,根据获取到的至少一聊天服务器的第二负载信息,为所述客户端分配至一聊天服务器,以使被分配到所述客户端的聊天服务器根据自身上运行的至少一虚拟聊天室的第一负载信息,确定分配给所述客户端的目标虚拟聊天室。

在一种可能的实施方式中,所述第二负载信息包括该聊天服务器的在线人数、在线人数上限、聊天消息转发速度、聊天消息转发速度上限、使用中的虚拟聊天室的数量以及虚拟聊天室的总量;

所述服务器分配模块具体用于:

针对每个所述聊天服务器,根据该聊天服务器的所述第二负载信息,确定该聊天服务器的在线人数与在线人数上限之间的第三比值,该聊天服务器的使用中的虚拟聊天室的数量与虚拟聊天室的总量之间的第四比值,以及该聊天服务器的聊天消息转发速度与聊天消息转发速度上限之间的第五比值;

将所述第三比值、第四比值和第五比值中,数值最大的比值作为该聊天服务器的第二负载值;

基于每个聊天服务器的第二负载值,确定为所述客户端分配的一聊天服务器。

在一种可能的实施方式中,所述服务器分配模块在基于每个聊天服务器的第二负载值,确定为所述客户端分配的一聊天服务器时,具体用于:

按照每个聊天服务器对应的第二负载值的大小,分别将每个聊天服务器的信息写入多个服务器分配队列中;其中,不同的服务器分配队列对应不同的负载值范围;

将对应的第二负载值的平均值最小的服务器分配队列中,对应的第二负载值最高的聊天服务器作为为所述客户端分配的聊天服务器。

在一种可能的实施方式中,所述服务器分配模块还用于:

若对应的所述第二负载值的平均值最小的服务器分配队列中,对应的第二负载值最高的聊天服务器的第二负载值已达到上限值,则随机从该服务器分配队列中抽取一聊天服务器,作为为所述客户端分配的聊天服务器。

在一种可能的实施方式中,所述装置还包括:

预测模块,用于根据为所述客户端分配的聊天服务器的第二负载值随其自身的在线人数的变化规律,预测将所述客户端分配至该聊天服务器后,该聊天服务器的第二负载值;

更新模块,用于基于所述预测的第二负载值的大小,更新该聊天服务器在所述多个服务器分配队列中的位置。

本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的游戏中的信息处理方法的步骤。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的游戏中的信息处理方法的步骤。

本申请实施例提供的游戏中的信息处理方法及装置,首先获取所述聊天服务器上运行的至少一虚拟聊天室的第一负载信息;其次,基于每个所述虚拟聊天室的第一负载信息,确定所述聊天服务器的第二负载信息;然后,将所述第二负载信息发送至一中转服务器,所述中转服务器用于响应客户端发送的聊天室进入请求,根据所述第二负载信息为所述客户端分配至一聊天服务器;最后,若检测到所述中转服务器分配给所述聊天服务器的客户端,则根据所述聊天服务器上运行的至少一虚拟聊天室的所述第一负载信息,确定分配给所述客户端的目标虚拟聊天室。

与现有技术相比,本申请通过聊天服务器中每个虚拟聊天室的负载信息,确定聊天服务器的负载信息,以使中转服务器根据各个聊天服务器的负载信息分配客户端,聊天服务器在分配到客户端后,再根据每个虚拟聊天室的负载信息,为客户端分配虚拟聊天室,使负载不高的虚拟聊天室优先分配,能够实现聊天服务器和虚拟聊天室的负载均衡,降低服务器崩溃的风险,提高服务器的利用率,减少资源浪费。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例所提供的一种游戏中的信息处理方法的流程图;

图2示出了本申请实施例所提供的另一种游戏中的信息处理方法的流程图;

图3示出了本申请实施例所提供的一种游戏中的信息处理装置的结构示意图;

图4示出了本申请实施例所提供的另一种游戏中的信息处理装置的结构示意图;

图5示出了本申请实施例所提供的一种电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。

需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。

本申请的一个方面涉及一种游戏中的信息处理系统。游戏中的信息处理系统可以包括客户端、中转服务器、聊天服务器及数据库。客户端可以是用户持有的终端设备,如智能手机、个人计算机、平板笔记本电脑等;聊天服务器有一个或多个,负责管理该聊天服务器上运行的虚拟聊天室,所有的聊天逻辑都在该聊天服务器上进行;中转服务器运行有分配进程,能够管理所有聊天服务器的负载信息,并分配合适的聊天服务器给客户端,中转服务器可以是分布式服务器,能够同时处理大量的分配任务;数据库可以将虚拟聊天室的聊天信息保存起来。

值得注意的是,在本申请提出之前,由于虚拟聊天室的负载能力有限,无法一次性地容纳所有玩家,游戏厂商通常为游戏的聊天系统配置多个服务器,将玩家分散到多个聊天室当中,并提供虚拟聊天室切换的通道。然而,由于玩家通常会选择热度较高,即在线人数较多的虚拟聊天室进入,使负载较高的虚拟聊天室的负载持续增高,而在线人数较少的虚拟聊天室很少有玩家进入,导致了服务器资源分配不协调,造成了资源的浪费,并加重了高负载虚拟聊天室崩溃的风险。

而本申请提供的游戏中的信息处理系统,能够根据每个聊天服务器及虚拟聊天室的负载信息分配聊天室,均衡各个聊天服务器的负载,降低服务器崩溃的风险,减少资源浪费。

下面结合上述游戏中的信息处理系统中描述的内容,对本申请实施例提供的游戏中的信息处理方法进行详细说明。

请参阅图1,图1为本申请实施例所提供的一种游戏中的信息处理方法的流程图。如图1中所示,本申请实施例提供的游戏中的信息处理方法,应用于聊天服务器,包括:

s101、获取所述聊天服务器上运行的至少一虚拟聊天室的第一负载信息。

该步骤中,聊天服务器可以收集其上运行的每个虚拟聊天室的第一负载信息,负载信息可以包括虚拟聊天室在运行时的各种信息,比如,虚拟聊天室中的在线人数、在线人数上限、聊天消息转发速度、聊天消息转发速度上限、运行时间等信息,负载信息能够在一定程度上反映一个虚拟聊天室的活跃程度和负荷程度。

具体的,聊天服务器可以以预设周期(例如,每秒或每分)持续收集这些负载信息,并持续更新。

s102、基于每个所述虚拟聊天室的第一负载信息,确定所述聊天服务器的第二负载信息。

该步骤中,聊天服务器可以对每个虚拟聊天室的负载信息进行统计,将各项数据相加或取平均值,或经过其他统计操作,得到聊天服务器自身的负载信息,即第二负载信息,第二负载信息中可以包括整个聊天服务器的在线人数、在线人数上限、聊天消息转发速度、聊天消息转发速度上限,以及聊天服务器中处于使用中状态的虚拟聊天室、虚拟聊天室的总数等。

s103、将所述第二负载信息发送至一中转服务器,所述中转服务器用于响应客户端发送的聊天室进入请求,根据所述第二负载信息为所述客户端分配至一聊天服务器。

该步骤中,可以将聊天服务器自身的身份标识和第二负载信息一同上报至中转服务器,中转服务器在接收到后,能够根据所有聊天服务器的负载信息,为需要进入虚拟聊天室的客户端选择一个合适的聊天服务器,并将客户端的聊天室进入请求转发至选择的聊天服务器。

具体的,中转服务器可以根据每个聊天服务器的负载信息,确定每个聊天服务器的负载值,负载值能够体现聊天服务器的活跃程度和负荷程度,并根据负载值大小,选择一个负载程度相对较低,但活跃程度较高的聊天服务器分配给客户端。

这样,能够在满足用户想要进行活跃的沟通交流的需求,也能够保持每个聊天服务器上的负载相对均衡,每个聊天服务器上在线的用户数量相近,减少资源的浪费。

s104、若检测到所述中转服务器分配给所述聊天服务器的客户端,则根据所述聊天服务器上运行的至少一虚拟聊天室的所述第一负载信息,确定分配给所述客户端的目标虚拟聊天室。

该步骤中,中转服务器可以接收客户端发送的聊天室进入请求,并将客户端分配至一聊天服务器,并将聊天室进入请求转发至分配的聊天服务器,若聊天服务器接收到了中转服务器转发的聊天室进入请求,则说明中转服务器将聊天室请求对应的客户端分配给了该聊天服务器,聊天服务器需要将客户端分配至具体的虚拟聊天室,以使客户端加入虚拟聊天室,聊天服务器可以根据其自身上运行的每个虚拟聊天室的第一负载信息,为客户端选择负载程度相对较底、活跃程度较高的虚拟聊天室。

这样,能够实现聊天服务器和虚拟聊天室的负载均衡,降低服务器崩溃的风险,提高服务器的利用率,减少资源浪费。

在一种可能的实施方式中,所述第一负载信息包括该虚拟聊天室的在线人数、在线人数上限、聊天消息转发速度以及聊天消息转发速度上限;

所述基于每个所述虚拟聊天室的第一负载信息,确定所述聊天服务器的第二负载信息,包括:

基于每个所述虚拟聊天室的在线人数及在线人数上限,确定所述聊天服务器的在线人数和在线人数上限,以及所述聊天服务器上运行的使用中的虚拟聊天室的数量和虚拟聊天室的总量;

基于每个所述虚拟聊天室的聊天消息转发速度及聊天消息转发速度上限,确定所述聊天服务器的聊天消息转发速度及聊天消息转发速度上限。

该步骤中,可以将每个虚拟聊天室的在线人数相加,得到聊天服务器的在线总人数;将每个虚拟聊天室的在线人数上限相加,得到聊天服务器的在线人数上限;将所有虚拟聊天室的聊天消息转发速度相加,得到聊天服务器的聊天消息转发速度;将所有虚拟聊天室的聊天消息转发速度上限相加,得到聊天服务器的聊天消息转发速度上限;确定在线人数大于0的虚拟聊天室的总数,作为使用中的虚拟聊天室的数量;遍历聊天服务器上所有的虚拟聊天室,确定虚拟聊天室的总数。当然,聊天服务器的在线人数上限、虚拟聊天室的总数、以及聊天消息转发速度上限可以通过预先储存聊天服务器的配置信息确定。

在一种可能的实施方式中,所述根据所述聊天服务器上运行的至少一虚拟聊天室的所述第一负载信息,确定分配给所述客户端的目标虚拟聊天室,包括:

针对每个虚拟聊天室,根据确定的该虚拟聊天室的所述第一负载信息,确定该虚拟聊天室的在线人数与在线人数上限之间的第一比值,以及该虚拟聊天室的聊天消息转发速度与聊天消息转发速度上限之间的第二比值;

将所述第一比值和第二比值中,数值最大的比值作为所述聊天服务器的第一负载值;

基于每个虚拟聊天室的第一负载值,确定分配给所述客户端的目标虚拟聊天室。

该步骤中,可以使用下述公式,确定每个虚拟聊天室的第一负载值:

payload1=max(playernum/maxplayernum,msgrate/maxmsgrate)

其中,payload1为第一负载值,playernum为该虚拟聊天室中的在线人数,maxplayernum为虚拟聊天室的在线人数上限,msgrate为该虚拟聊天室的聊天消息转发速度,maxmsgrate为虚拟聊天室的聊天消息转发速度上限。

其中,第一负载值的取值范围可以是从0至100,0表示空负载,100表示满负载,每当检测到虚拟聊天室中存在客户端进入、退出、发言等操作时,第一负载值都会受到影响,聊天服务器会对第一负载值进行更新。

在上述公式中,对第一比值和第二比值进行了取最大值的操作,这样,可以简化负载计算算法模型,只要两个比值中有一项很高,就能够说明聊天服务器的负载较高,比如,若聊天服务器中的人数较少,但消息转发速度特别高,也能够说明该聊天服务器的负载较高。

该步骤中,在确定了第一负载值之后,就可以根据每个虚拟聊天室的第一负载值,判断该虚拟聊天室的负载程度,并选择合适的虚拟聊天室进行分配。

这样,根据可度量的负载值,判断聊天服务器中每个虚拟聊天室的负载程度,可以使虚拟聊天室分配的更为合理,资源的利用率更高。

在一种可能的实施方式中,所述基于每个所述虚拟聊天室的第一负载值,确定分配给所述客户端的目标虚拟聊天室,包括:

按照每个所述虚拟聊天室对应的第一负载值的大小,分别将每个所述虚拟聊天室的信息写入多个聊天室分配队列中;其中,不同的聊天室分配队列对应不同的负载值范围;

从所述多个聊天室分配队列中,选择所述第一负载值在目标负载范围内的聊天室分配队列,将选择的聊天室分配队列中第一负载值最高的虚拟聊天室作为分配给所述客户端的目标虚拟聊天室。

该步骤中,在确定了每个虚拟聊天室的第一负载值之后,可以将每个虚拟聊天室按照第一负载值的大小,将其对应的信息写入多个聊天室分配队列中。

具体的,可以设置4个聊天室分配队列,分别为空闲队列、活跃队列、高负载队列以及爆满队列。空闲队列对应的第一负载值的取值范围可以是0至50,活跃队列对应的取值范围可以是大于50且小于80,而大于80且小于100的队列为高负载队列,爆满队列对应的取值范围则为100,当检测到有虚拟聊天室的第一负载值变化时,该虚拟聊天室所对应的信息在聊天室分配队列中的位置也会改变,可能会由一个队列变为另一个队列,或改变在同一个队列中的位置。

在分配虚拟聊天室的过程中,可以选择活跃队列中的虚拟聊天室分配给客户端,由于目标负载范围,也即活跃队列中的虚拟聊天室的第一负载值的取值范围是大于50且小于80,该队列中所有的虚拟聊天室都是比较活跃,并且负载相对与高负载的虚拟聊天室要低,能够接纳的客户端也比较多,能够保证用户对于活跃聊天室的需求,并防止聊天室的负载过高,避免爆满;而优选该队列中负载值最高的虚拟聊天室,能够使队列链表具有较高的分配效率,也能起到引流客户端的作用。

进一步的,若活跃队列中不存在虚拟聊天室的信息,则确定高负载队列中选取负载值最高的虚拟聊天室为目标聊天室,若高负载队列中也不存在,则确定空闲队列中第一负载值最高的虚拟聊天室为目标聊天室。

在一种可能的实施方式中,所述方法还包括:

将所述目标虚拟聊天室的信息推送给所述客户端,以使所述客户端加入所述目标虚拟聊天室。

该步骤中,在将目标虚拟聊天室分配给客户端之后,聊天服务器可以直接和客户端进行通信,不需要再经过中转服务器。

在一种可能的实施方式中,所述方法还包括:

响应所述客户端发送的消息转发请求,向所述目标虚拟聊天室内的其它客户端广播所述消息转发请求中携带的转发消息。

该步骤中,客户端可以向聊天服务器发送一个消息转发请求,消息转发请求中携带有客户端的身份标识和转发消息,聊天服务器在接收到后会向目标虚拟聊天室内的所有其他客户端广播转发消息,以实现虚拟聊天室中的消息发送。

请参阅图2,图2为本申请另一实施例提供的游戏中的信息处理方法的流程图。如图2中所示,本申请实施例提供的游戏中的信息处理方法,应用于中转服务器,包括:

s201、响应客户端发送的聊天室进入请求,根据获取到的至少一聊天服务器的第二负载信息,为所述客户端分配至一聊天服务器,以使被分配到所述客户端的聊天服务器根据自身上运行的至少一虚拟聊天室的第一负载信息,确定分配给所述客户端的目标虚拟聊天室。

该步骤中,每当中转服务器接收到聊天服务器上报的第二负载信息时,都会将其储存,在接收到客户端发送的聊天室请求后,中转服务器就会使用最近一次获取的多个聊天服务器中每个聊天服务器的第二负载信息,确定出符合条件的聊天服务器,作为为所述客户端分配的聊天服务器。

其中,符合条件的聊天服务器可以是负载程度相对较低、活跃度较高的聊天服务器。

在一种可能的实施方式中,所述第二负载信息包括该聊天服务器的在线人数、在线人数上限、聊天消息转发速度、聊天消息转发速度上限、使用中的虚拟聊天室的数量以及虚拟聊天室的总量;

所述根据获取到的至少一聊天服务器的第二负载信息,为所述客户端分配至一聊天服务器,包括:

针对每个所述聊天服务器,根据该聊天服务器的所述第二负载信息,确定该聊天服务器的在线人数与在线人数上限之间的第三比值,该聊天服务器的使用中的虚拟聊天室的数量与虚拟聊天室的总量之间的第四比值,以及该聊天服务器的聊天消息转发速度与聊天消息转发速度上限之间的第五比值;

将所述第三比值、第四比值和第五比值中,数值最大的比值作为该聊天服务器的第二负载值;

基于每个聊天服务器的第二负载值,确定为所述客户端分配的一聊天服务器。

该步骤中,可以使用下述公式,确定每个聊天服务器额第二负载值:

payload2=max(playernum2/maxplayernum2,roomnum/maxroomnum,msgrate2/maxmsgrate2)

其中,payload2为第二负载值,playernum2为一聊天服务器中的在线人数,maxplayernum2为该聊天服务器的在线人数上限,msgrate2为该聊天服务器的聊天消息转发速度,maxmsgrate2为该聊天服务器的聊天消息转发速度上限,roomnum为该聊天服务器的使用中的虚拟聊天室的数量,maxroomnum为该聊天服务器中的虚拟聊天室总量。

与第一负载值相似,第二负载值同样表示其对应的服务器的负载程度和活跃度,其取值范围也可以是从0至100,0表示该第二负载值对应的聊天服务器为空负载,100表示满负载。

值得注意的是,第二负载值可以由中转服务器来计算,也可以由聊天服务器来计算,再将其发送至中转服务器,在本实施例中,第一负载值由中转服务器计算得到。

在中转服务器确定了第二负载值之后,可以根据第二负载值,选取出负载相对较低且活跃程度较高的聊天服务器。

在一种可能的实施方式中,所述基于每个聊天服务器的第二负载值,确定为所述客户端分配的一聊天服务器,包括:

按照每个聊天服务器对应的第二负载值的大小,分别将每个聊天服务器的信息写入多个服务器分配队列中;其中,不同的服务器分配队列对应不同的负载值范围;

将对应的第二负载值的平均值最小的服务器分配队列中,对应的第二负载值最高的聊天服务器作为为所述客户端分配的聊天服务器。

具体的,可以将所有聊天服务器的信息写入到共11个服务器分配队列中,其序号分别为0至10,序号为0的服务器分配队列中负载值的取值范围是小于10,序号为1的服务器分配队列对应的取值范围为大于等于10且小于20,以此类推,序号为10的服务器分配队列对应的取值范围为100负载。当有要分配的客户端时,可以从序号为0的服务器分配队列开始遍历,将客户端分配给最先遍历到聊天服务器的信息的服务器分配队列中,第二负载值最高的聊天服务器(队列首的聊天服务器),也即将对应的第二负载值的平均值最小的服务器分配队列中,对应的第二负载值最高的聊天服务器作为为所述客户端分配的聊天服务器。

这样,可以使聊天服务器的负载值逐步增加到下一队列,而不是使一个聊天服务器从低负载直接增长到高负载,能够实现聊天服务器的负载均衡,能够使同一时间端内的客户端尽量分配到同一聊天服务器中,也能够使聊天服务器上的虚拟聊天室拥有足够的活跃程度。

在一种可能的实施方式中,所述方法还包括:

若对应的所述第二负载值的平均值最小的服务器分配队列中,对应的第二负载值最高的聊天服务器的第二负载值已达到上限值,则随机从该服务器分配队列中抽取一个聊天服务器,作为为所述客户端分配的聊天服务器。

该步骤中,若序号为0至9的服务器分配队列中都不存在任何聊天服务器的信息,则可以从序号为10的服务分配队列中,随机抽选一个聊天服务器的信息,将其对应的聊天服务器作为为所述客户端分配的聊天服务器,这样,能够防止多个客户端被分配到同一个爆满聊天服务器中,避免出现服务器崩溃。

在一种可能的实施方式中,所述方法在确定为所述客户端分配的聊天服务器之后,还包括:

根据为所述客户端分配的聊天服务器的第二负载值随其自身的在线人数的变化规律,预测将所述客户端分配至该聊天服务器后,该聊天服务器的第二负载值;

基于所述预测的第二负载值的大小,更新该聊天服务器在所述多个服务器分配队列中的位置。

具体的,可以根据下述公式确定为所述客户端分配的聊天服务器的第二负载值随其自身的在线人数的变化规律:

factor=(curpayload-lastpayload)/(curplayernum-lastplayernum)

其中,factor为该聊天服务器的第二负载值随其自身的在线人数的变化规律,curpayload为最近一次确定的该聊天服务器的第二负载值,lastpayload为curpayload再前一次确定的该聊天服务器的第二负载值,curplayernum为最近一次确定的该聊天服务器的在线人数,lastplayernum为curpayload再前一次确定的该聊天服务器的在线人数。此处的factor代表的意思是每增加一个客户端,该聊天服务器的第二负载值所增加的值。

该步骤中,在确定了该聊天服务器的第二负载值随其自身的在线人数的变化规律之后,可以将确定的factor与当前该聊天服务器的第二负载值相加,即得到预测的第二负载值,并根据预测的第二负载值更新该聊天服务器的信息在服务器分配队列中的位置,以防该聊天服务器因数据更新延迟,同一时间内分配到大量的客户端,而导致其爆满,进而崩溃。

值得注意的是,与第二负载值相似,factor可以由中转服务器确定,也可以由聊天服务器确定,并发送给中转服务器。

本申请实施例提供的游戏中的信息处理方法,首先获取所述聊天服务器上运行的至少一虚拟聊天室的第一负载信息;其次,基于每个所述虚拟聊天室的第一负载信息,确定所述聊天服务器的第二负载信息;然后,将所述第二负载信息发送至一中转服务器,所述中转服务器用于响应客户端发送的聊天室进入请求,根据所述第二负载信息为所述客户端分配至一聊天服务器;最后,若检测到所述中转服务器分配给所述聊天服务器的客户端,则根据所述聊天服务器上运行的至少一虚拟聊天室的所述第一负载信息,确定分配给所述客户端的目标虚拟聊天室。

与现有技术相比,本申请通过聊天服务器中每个虚拟聊天室的负载信息,确定聊天服务器的负载信息,以使中转服务器根据各个聊天服务器的负载信息分配客户端,聊天服务器在分配到客户端后,再根据每个虚拟聊天室的负载信息,为客户端分配虚拟聊天室,使负载不高的虚拟聊天室优先分配,能够实现聊天服务器和虚拟聊天室的负载均衡,降低服务器崩溃的风险,提高服务器的利用率,减少资源浪费。

请参阅图3、图4,图3为本申请实施例所提供的一种游戏中的信息处理装置的结构示意图,图4为本申请实施例所提供的另一种游戏中的信息处理装置的结构示意图。如图3中所示,所述游戏中的信息处理装置300包括:

获取模块310,用于获取所述聊天服务器上运行的至少一虚拟聊天室的第一负载信息;

确定模块320,用于基于每个所述虚拟聊天室的第一负载信息,确定所述聊天服务器的第二负载信息;

发送模块330,用于将所述第二负载信息发送至一中转服务器,所述中转服务器用于响应客户端发送的聊天室进入请求,根据所述第二负载信息为所述客户端分配至一聊天服务器;

聊天室分配模块340,用于若检测到所述中转服务器分配给所述聊天服务器的客户端,则根据所述聊天服务器上运行的至少一虚拟聊天室的所述第一负载信息,确定分配给所述客户端的目标虚拟聊天室。

在一种可能的实施方式中,所述第一负载信息包括该虚拟聊天室的在线人数、在线人数上限、聊天消息转发速度以及聊天消息转发速度上限;

所述确定模块320,具体用于:

基于每个所述虚拟聊天室的在线人数及在线人数上限,确定所述聊天服务器的在线人数和在线人数上限,以及所述聊天服务器上运行的使用中的虚拟聊天室的数量和虚拟聊天室的总量;

基于每个所述虚拟聊天室的聊天消息转发速度及聊天消息转发速度上限,确定所述聊天服务器的聊天消息转发速度及聊天消息转发速度上限。

在一种可能的实施方式中,所述聊天室分配模块340具体用于:

针对每个虚拟聊天室,根据确定的该虚拟聊天室的所述第一负载信息,确定该虚拟聊天室的在线人数与在线人数上限之间的第一比值,以及该虚拟聊天室的聊天消息转发速度与聊天消息转发速度上限之间的第二比值;

将所述第一比值和第二比值中,数值最大的比值作为所述聊天服务器的第一负载值;

基于每个所述虚拟聊天室的第一负载值,确定分配给所述客户端的目标虚拟聊天室。

在一种可能的实施方式中,所述聊天室分配模块340在基于每个虚拟聊天室的第一负载值,确定分配给所述客户端的目标虚拟聊天室时,具体用于:

按照每个所述虚拟聊天室对应的第一负载值的大小,分别将每个所述虚拟聊天室的信息写入多个聊天室分配队列中;其中,不同的聊天室分配队列对应不同的负载值范围;

从所述多个聊天室分配队列中,选择所述第一负载值在目标负载范围内的聊天室分配队列,将选择的聊天室分配队列中第一负载值最高的虚拟聊天室作为分配给所述客户端的目标虚拟聊天室。

在一种可能的实施方式中,所述游戏中的信息处理装置300还包括:

推送模块350,用于将所述目标虚拟聊天室的信息推送给所述客户端,以使所述客户端加入所述目标虚拟聊天室。

在一种可能的实施方式中,所述游戏中的信息处理装置300还包括:

广播模块360,用于响应所述客户端发送的消息转发请求,向所述目标虚拟聊天室内的其它客户端广播所述消息转发请求中携带的转发消息。

如图4所示,本申请实施例提供的游戏中的信息处理装置400,用于中转服务器,包括:

服务器分配模块410,用于响应客户端发送的聊天室进入请求,根据获取到的至少一聊天服务器的第二负载信息,为所述客户端分配至一聊天服务器,以使被分配到所述客户端的聊天服务器根据自身上运行的至少一虚拟聊天室的第一负载信息,确定分配给所述客户端的目标虚拟聊天室。

在一种可能的实施方式中,所述第二负载信息包括该聊天服务器的在线人数、在线人数上限、聊天消息转发速度、聊天消息转发速度上限、使用中的虚拟聊天室的数量以及虚拟聊天室的总量;

所述服务器分配模块410具体用于:

针对每个所述聊天服务器,根据该聊天服务器的所述第二负载信息,确定该聊天服务器的在线人数与在线人数上限之间的第三比值,该聊天服务器的使用中的虚拟聊天室的数量与虚拟聊天室的总量之间的第四比值,以及该聊天服务器的聊天消息转发速度与聊天消息转发速度上限之间的第五比值;

将所述第三比值、第四比值和第五比值中,数值最大的比值作为该聊天服务器的第二负载值;

基于每个聊天服务器的第二负载值,确定为所述客户端分配的一聊天服务器。

在一种可能的实施方式中,所述服务器分配模块410在基于每个聊天服务器的第二负载值,确定为所述客户端分配的聊天服务器时,具体用于:

按照每个聊天服务器对应的第二负载值的大小,分别将每个聊天服务器的信息写入多个服务器分配队列中;其中,不同的服务器分配队列对应不同的负载值范围;

将对应的第二负载值的平均值最小的服务器分配队列中,对应的第二负载值最高的聊天服务器作为为所述客户端分配的聊天服务器。

在一种可能的实施方式中,所述服务器分配模块410还用于:

若对应的所述第二负载值的平均值最小的服务器分配队列中,对应的第二负载值最高的聊天服务器的第二负载值已达到上限值,则随机从该服务器分配队列中抽取一个聊天服务器,作为为所述客户端分配的聊天服务器。

在一种可能的实施方式中,所述游戏中的信息处理装置400还包括:

预测模块420,用于根据为所述客户端分配的聊天服务器的第二负载值随其自身的在线人数的变化规律,预测将所述客户端分配至该聊天服务器后,该聊天服务器的第二负载值;

更新模块430,用于基于所述预测的第二负载值的大小,更新该聊天服务器在所述多个服务器分配队列中的位置。

本申请实施例提供的游戏中的信息处理装置,首先获取所述聊天服务器上运行的至少一虚拟聊天室的第一负载信息;其次,基于每个所述虚拟聊天室的第一负载信息,确定所述聊天服务器的第二负载信息;然后,将所述第二负载信息发送至一中转服务器,所述中转服务器用于响应客户端发送的聊天室进入请求,根据所述第二负载信息为所述客户端分配至一聊天服务器;最后,若检测到所述中转服务器分配给所述聊天服务器的客户端,则根据所述聊天服务器上运行的至少一虚拟聊天室的所述第一负载信息,确定分配给所述客户端的目标虚拟聊天室。

与现有技术相比,本申请通过聊天服务器中每个虚拟聊天室的负载信息,确定聊天服务器的负载信息,以使中转服务器根据各个聊天服务器的负载信息分配客户端,聊天服务器在分配到客户端后,再根据每个虚拟聊天室的负载信息,为客户端分配虚拟聊天室,使负载不高的虚拟聊天室优先分配,能够实现聊天服务器和虚拟聊天室的负载均衡,降低服务器崩溃的风险,提高服务器的利用率,减少资源浪费。

请参阅图5,图5为本申请实施例所提供的一种电子设备的结构示意图。如图5中所示,所述电子设备500包括处理器510、存储器520和总线530。

所述存储器520存储有所述处理器510可执行的机器可读指令,当电子设备500运行时,所述处理器510与所述存储器520之间通过总线530通信,所述机器可读指令被所述处理器510执行时,可以执行如上述图1以及图2所示方法实施例中的游戏中的信息处理方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行如上述图1以及图2所示方法实施例中的游戏中的信息处理方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1