服务器的分配方法、系统及存储介质

文档序号:1193545 发布日期:2020-09-01 浏览:26次 >En<

阅读说明:本技术 服务器的分配方法、系统及存储介质 (Server distribution method, system and storage medium ) 是由 徐波 于 2020-04-07 设计创作,主要内容包括:本发明公开了一种服务器的分配方法,包括:计算每一地图服务器中待创建的地图的数量,并根据待创建的地图的数量,分别在地图服务器中创建地图节点;统计每一对象组的目标地图服务器;其中,对象组是由待匹配对象匹配得到的;建立对象组与目标地图节点的映射关系,得到节点映射列表;从对象组选取待分配对象组,从节点映射列表中遍历待分配对象组映射的目标地图节点;识别目标地图节点是否已被分配,当目标地图节点未被分配时,将待分配对象组分配至目标地图节点。本发明公开的一种服务器的分配方法,能够降低服务器网络的负载,提高跨服数据传输效率。本发明还公开了一种系统和存储介质。(The invention discloses a server distribution method, which comprises the following steps: calculating the number of maps to be created in each map server, and respectively creating map nodes in the map servers according to the number of the maps to be created; counting a target map server of each object group; the object group is obtained by matching objects to be matched; establishing a mapping relation between an object group and a target map node to obtain a node mapping list; selecting an object group to be distributed from the object group, and traversing a target map node mapped by the object group to be distributed from the node mapping list; and identifying whether the target map node is distributed or not, and distributing the object group to be distributed to the target map node when the target map node is not distributed. The server distribution method disclosed by the invention can reduce the load of the server network and improve the cross-service data transmission efficiency. The invention also discloses a system and a storage medium.)

服务器的分配方法、系统及存储介质

技术领域

本发明涉及计算机技术领域,尤其涉及一种服务器的分配方法、装置及存储介质。

背景技术

在网络游戏中,公会对战模式是一种常见的游戏模式。在公会对战时,会对不同的公会进行匹配,将匹配到一起的公会投放到同个地图进行对战。参见图1,由于单台服务器的性能有限,当同一时间下玩家数量较多时,需要更多的服务器来提供服务,以在一场对战匹配完成后,从多台服务器中选择一台服务器来创建对战地图,使玩家从旧地图位置跳转到新地图位置。

现有技术中的服务器的选择方法有:计算每个服务器当前已有的对战数量,选择一个对战数量较少的服务器分配当前匹配完成的玩家。本发明人在实施本发明的过程中发现,现有技术中存在以下技术问题:如果玩家的新地图位置和旧地图位置不在同个地图服务器中,需要对玩家进行跨服流程,对数据进行跨服传输;当同一时间下产生的对战数量较多时,需要跨服的传输的数据量也会大大增加,给服务器网络带来较大的传输压力,玩家也需要更长的时间等待进入新地图。

发明内容

本发明实施例提供一种服务器的分配方法,能够降低服务器网络的传输压力,提高跨服数据传输效率。

本发明实施例一提供一种服务器的分配方法,包括:

计算每一地图服务器中待创建的地图的数量,并根据所述待创建的地图的数量,分别在所述地图服务器中创建地图节点;

统计每一对象组的目标地图服务器;其中,所述对象组是由待匹配对象匹配得到的;

建立所述对象组与目标地图节点的映射关系,得到节点映射列表;其中,所述目标地图节点是所述对象组的目标地图服务器中的地图节点;

从所述对象组选取待分配对象组,从所述节点映射列表中遍历所述待分配对象组映射的目标地图节点;

识别所述目标地图节点是否已被分配,当所述目标地图节点未被分配时,将所述待分配对象组分配至所述目标地图节点。

作为上述方案的改进,还包括:

当所述目标地图节点已被分配时,对当前分配至所述目标地图节点的对象组进行重新分配;

若重新分配成功,将所述待分配对象组分配至所述目标地图节点。

作为上述方案的改进,所述计算每一地图服务器中待创建的地图的数量,具体包括:

统计各个所述地图服务器中当前的对象组的数量;

若所述待分配对象组的数量大于0,选择当前的对象组的数量最少的地图服务器,将所述当前的对象组的数量最少的地图服务器待创建的地图的数量加1,将待分配对象组的数量减1;

重复上述步骤,直至所述待分配对象组的数量为0。

作为上述方案的改进,所述统计每一对象组的目标地图服务器,具体包括:

若所述对象组中的待匹配对象,匹配前所在的地图服务器均不相同,判定所述对象组的目标地图服务器个数为所述待匹配对象的个数;

若所述对象组中的待匹配对象,匹配前所在的地图服务器相同,判定所述对象组的目标地图服务器个数为1;

若所述对象组中的待匹配对象,在本次匹配前仅有一待匹配对象经历过匹配,判定所述对象组的目标地图服务器个数为1;

若所述对象组中的待匹配对象,在本次匹配前均未经历过匹配,判定所述对象组的目标地图服务器个数为0。

作为上述方案的改进,所述从所述对象组选取待分配对象组,从所述节点映射列表中遍历所述待分配对象组映射的目标地图节点,具体包括:

从所述对象组选取待分配对象组,对各个所述待分配对象组进行排序;

顺序选取所述待分配对象组,从所述节点映射列表中遍历所述待分配对象组映射的目标地图节点;

其中,对各个所述待分配对象组进行排序,具体包括:将对应的目标地图服务器个数为1的排在前列。

作为上述方案的改进,还包括:将未成功分配至所述目标地图节点的待分配对象组,与剩余未分配的所述地图节点,进行随机分配。

本发明实施例二对应提供了一种服务器的分配系统,包括:

节点创建单元,用于计算每一地图服务器中待创建的地图的数量,并根据所述待创建的地图的数量,分别在所述地图服务器中创建地图节点;

对象统计单元,用于统计每一对象组的目标地图服务器;其中,所述对象组是由待匹配对象匹配得到的;

映射建立单元,用于建立所述对象组与目标地图节点的映射关系,得到节点映射列表;其中,所述目标地图节点是所述对象组的目标地图服务器中的地图节点;

节点遍历单元,用于从所述对象组选取待分配对象组,从所述节点映射列表中遍历所述待分配对象组映射的目标地图节点;

对象分配单元,用于识别所述目标地图节点是否已被分配,当所述目标地图节点未被分配时,将所述待分配对象组分配至所述目标地图节点。

作为上述方案的改进,所述对象分配单元,还用于:

当所述目标地图节点已被分配时,对当前分配至所述目标地图节点的对象组进行重新分配;

若重新分配成功,将所述待分配对象组分配至所述目标地图节点。

本发明实施例三对应提供了一种服务器的分配系统,包括:处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例一所述的一种服务器的分配方法。

本发明实施例四对应提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如本发明实施例一所述的一种服务器的分配方法。

本发明实施例提供的一种服务器的分配方法,具有如下有益效果:

通过计算每一地图服务器中待创建的地图的数量,并根据待创建的地图的数量,分别在地图服务器中创建地图节点,避免创建的地图节点过多或过少造成的节点资源浪费或资源不足;通过统计待匹配对象匹配得到的对象组的目标地图服务器,建立对象组与目标地图节点的映射关系,并按照该映射关系得到的节点映射列表对各个待分配对象组进行遍历,能够有效提高遍历效率和分配效率;通过选择当前的对象组的数量最少的地图服务器,将当前的对象组的数量最少的地图服务器待创建的地图的数量加1,将待分配对象组的数量减1,直至待分配对象组的数量为0,使得分配倾向负载较少的地图服务器,避免某部分服务器负载过高的负载失衡情况,在各个地图服务器之间实现负载均衡,能够降低服务器网络的负载,提高跨服数据传输效率;通过对已被分配的目标地图节点的对象组进行重新遍历和分配,能够使已分配的对象组和当前分配的对象组均能搜寻到适合的地图服务器,让地图服务器实现负载均衡,并实现最优化分配;通过优先选择对象组中各对象当前所在的地图服务器作为目标地图服务器,能够最大化减少切换地图服务器的数据传输总量,减少网络的数据传输压力,减少玩家进入地图的等待时间。

附图说明

图1是现有技术的服务器分配方法。

图2是本发明实施例一提供的一种服务器的分配方法的流程示意图。

图3是本发明实施例一提供的一具体实施例的分配方式示意图。

图4是本发明实施例一提供的一具体实施例的分配结果示意图。

图5是本发明实施例二提供的一种服务器的分配系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图2,是本发明实施例一提供的一种服务器的分配方法的流程示意图,包括:

S101、计算每一地图服务器中待创建的地图的数量,并根据待创建的地图的数量,分别在地图服务器中创建地图节点;

进一步地,计算每一地图服务器中待创建的地图的数量,具体包括:

统计各个地图服务器中当前的对象组的数量;

若待分配对象组的数量大于0,选择当前的对象组的数量最少的地图服务器,将当前的对象组的数量最少的地图服务器待创建的地图的数量加1,将待分配对象组的数量减1;

重复上述步骤,直至待分配对象组的数量为0。

在一具体的实施例中,统计各个地图服务器当前的对象组的数量,并按升序进行排序;令待分配的对象组数量=N,当N>0时,从统计的地图服务器中,选择第一个地图服务器,即对象组最少的服务器,将其需要创建的地图数量加1,并将待分配的对战公会的数量N减去1;重复上述步骤,直到N=0;由此可得到每个地图服务器需要创建的地图数量。

S102、统计每一对象组的目标地图服务器;其中,对象组是由待匹配对象匹配得到的;

进一步地,统计每一对象组的目标地图服务器,具体包括:

若对象组中的待匹配对象,匹配前所在的地图服务器均不相同,判定对象组的目标地图服务器个数为待匹配对象的个数;

若对象组中的待匹配对象,匹配前所在的地图服务器相同,判定对象组的目标地图服务器个数为1;

若对象组中的待匹配对象,在本次匹配前仅有一待匹配对象经历过匹配,判定对象组的目标地图服务器个数为1;

若对象组中的待匹配对象,在本次匹配前均未经历过匹配,判定对象组的目标地图服务器个数为0。

在一具体的实施例中,待匹配对象为对战公会,对象组为公会战组;由对战公会匹配得到若干公会战组,一个公会战组中包括若干匹配对战成功的对战公会;统计每一公会战组的目标地图服务器,每场公会战的公会战组的目标地图服务器有如下情况:

其一,对象组的目标地图服务器个数为0,此情况下该公会战组的每一对战公会均从未参与过公会战;

其二,对象组的目标地图服务器个数为1,此情况下该公会战组中仅有一个对战公会曾参与过公会战,或该公会战组的每一对战公会在匹配前均在同一个地图服务器;

其三,对象组的目标地图服务器个数为X,此情况下该公会战组中存在X个对战公会,且每一对战公会在匹配前所处的地图服务器均不相同。

具体地,在情况二中,若该公会战组中仅有一个对战公会曾参与过公会战,则以曾参与过公会战的对战公会所在的地图服务器作为目标地图服务器;若该公会战组的每一对战公会在匹配前均在同一个地图服务器,则以该共同服务器作为目标地图服务器。

一般地,一个公会战组中仅有两个匹配对战成功的对战公会,此时X值为2。

S103、建立对象组与目标地图节点的映射关系,得到节点映射列表;其中,目标地图节点是对象组的目标地图服务器中的地图节点;

在一可选的实施例中,分别对一地图服务器设置一地图服务器编号,分别对一地图节点设置一地图节点编号;且,地图节点编号=服务器编号*1000+地图节点序号,用低千位区分子节点;具体地,数值可以根据具体需求调整,1000表示该地图服务器最多能分配1000张地图。参见图3,对象组A-C映射地图服务器1,映射的目标地图节点即为地图节点1001和节点1002;对象组E-N映射地图服务器2和地图服务器3,映射的目标地图节点即为地图节点2001、2002和节点3001、3002;其余对象组与目标地图节点的映射关系可依此推得,故不再赘述。

具体地,每场公会战的公会战组关注对应目标地图服务器的所有目标地图节点,将公会战组到目标地图节点的映射关系,用字典Dic_Target保存。

S104、从对象组选取待分配对象组,从节点映射列表中遍历待分配对象组映射的目标地图节点;

进一步地,从对象组选取待分配对象组,从节点映射列表中遍历待分配对象组映射的目标地图节点,具体包括:

从对象组选取待分配对象组,对各个待分配对象组进行排序;

顺序选取待分配对象组,从节点映射列表中遍历待分配对象组映射的目标地图节点;

其中,对各个待分配对象组进行排序,具体包括:将对应的目标地图服务器个数为1的排在前列。

在一具体的实施例中,对所有等待匹配地图服务器的对象组进行排序,将对象组中目标地图服务器个数为1的排在前面,保存在节点映射列表List_A中;顺序取出节点映射列表List_A中对象组u,从字典Dic_Target中遍历每个u的目标地图节点。

S105、识别目标地图节点是否已被分配,当目标地图节点未被分配时,将待分配对象组分配至目标地图节点。

进一步地,还包括:

当目标地图节点已被分配时,对当前分配至目标地图节点的对象组进行重新分配;

若重新分配成功,将待分配对象组分配至目标地图节点。

在一具体的实施例中,当遍历至目标地图节点v时,如果目标地图节点v未被分配,此次匹配成功,记录对象组u与目标地图节点v的匹配结果。若目标地图节点v已经被分配了对象组w,则尝试让目标地图节点v的原分配的对象组w重新寻找新的匹配节点,若成功,记录u与w匹配结果。

进一步地,还包括:将未成功分配至目标地图节点的待分配对象组,与剩余未分配的地图节点,进行随机分配。

具体地,当所有List_A节点遍历完成后,进行随机分配;当随机分配完成后,服务器分配结束。参见图4,是本发明实施例一提供的一具体实施例的分配结果示意图。

本发明实施例提供的一种服务器的分配方法,具有如下有益效果:

通过计算每一地图服务器中待创建的地图的数量,并根据待创建的地图的数量,分别在地图服务器中创建地图节点,避免创建的地图节点过多或过少造成的节点资源浪费或资源不足;通过统计待匹配对象匹配得到的对象组的目标地图服务器,建立对象组与目标地图节点的映射关系,并按照该映射关系得到的节点映射列表对各个待分配对象组进行遍历,能够有效提高遍历效率和分配效率;通过选择当前的对象组的数量最少的地图服务器,将当前的对象组的数量最少的地图服务器待创建的地图的数量加1,将待分配对象组的数量减1,直至待分配对象组的数量为0,使得分配倾向负载较少的地图服务器,避免某部分服务器负载过高的负载失衡情况,在各个地图服务器之间实现负载均衡,能够降低服务器网络的负载,提高跨服数据传输效率;通过对已被分配的目标地图节点的对象组进行重新遍历和分配,能够使已分配的对象组和当前分配的对象组均能搜寻到适合的地图服务器,让地图服务器实现负载均衡,并实现最优化分配;通过优先选择对象组中各对象当前所在的地图服务器作为目标地图服务器,能够最大化减少切换地图服务器的数据传输总量,减少网络的数据传输压力,减少玩家进入地图的等待时间。

参见图5,是本发明实施例二提供的一种服务器的分配系统的结构示意图,包括:

节点创建单元201,用于计算每一地图服务器中待创建的地图的数量,并根据待创建的地图的数量,分别在地图服务器中创建地图节点;

对象统计单元202,用于统计每一对象组的目标地图服务器;其中,对象组是由待匹配对象匹配得到的;

映射建立单元203,用于建立对象组与目标地图节点的映射关系,得到节点映射列表;其中,目标地图节点是对象组的目标地图服务器中的地图节点;

节点遍历单元204,用于从对象组选取待分配对象组,从节点映射列表中遍历待分配对象组映射的目标地图节点;

对象分配单元205,用于识别目标地图节点是否已被分配,当目标地图节点未被分配时,将待分配对象组分配至目标地图节点。

进一步地,对象分配单元205,还用于:

当目标地图节点已被分配时,对当前分配至目标地图节点的对象组进行重新分配;

若重新分配成功,将待分配对象组分配至目标地图节点。

进一步地,计算每一地图服务器中待创建的地图的数量,具体包括:

统计各个地图服务器中当前的对象组的数量;

若待分配对象组的数量大于0,选择当前的对象组的数量最少的地图服务器,将当前的对象组的数量最少的地图服务器待创建的地图的数量加1,将待分配对象组的数量减1;

重复上述步骤,直至待分配对象组的数量为0。

进一步地,统计每一对象组的目标地图服务器,具体包括:

若对象组中的待匹配对象,匹配前所在的地图服务器均不相同,判定对象组的目标地图服务器个数为待匹配对象的个数;

若对象组中的待匹配对象,匹配前所在的地图服务器相同,判定对象组的目标地图服务器个数为1;

若对象组中的待匹配对象,在本次匹配前仅有一待匹配对象经历过匹配,判定对象组的目标地图服务器个数为1;

若对象组中的待匹配对象,在本次匹配前均未经历过匹配,判定对象组的目标地图服务器个数为0。

进一步地,从对象组选取待分配对象组,从节点映射列表中遍历待分配对象组映射的目标地图节点,具体包括:

从对象组选取待分配对象组,对各个待分配对象组进行排序;

顺序选取待分配对象组,从节点映射列表中遍历待分配对象组映射的目标地图节点;

其中,对各个待分配对象组进行排序,具体包括:将对应的目标地图服务器个数为1的排在前列。

进一步地,还包括随机分配单元,用于:将未成功分配至目标地图节点的待分配对象组,与剩余未分配的地图节点,进行随机分配。

本发明实施例三对应提供了一种服务器的分配系统,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例一所述的服务器的分配方法。所述服务器的分配系统可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述服务器的分配系统可包括,但不仅限于,处理器、存储器。

本发明实施例四对应提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如本发明实施例一所述的服务器的分配方法。

所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述服务器的分配系统的控制中心,利用各种接口和线路连接整个服务器的分配系统的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述服务器的分配系统的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

其中,所述服务器的分配系统集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:虚拟载具的控制方法及装置、存储介质、电子装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类