CN102710615B - 一种网络游戏动态负载均衡方法 - Google Patents
一种网络游戏动态负载均衡方法 Download PDFInfo
- Publication number
- CN102710615B CN102710615B CN201210151017.8A CN201210151017A CN102710615B CN 102710615 B CN102710615 B CN 102710615B CN 201210151017 A CN201210151017 A CN 201210151017A CN 102710615 B CN102710615 B CN 102710615B
- Authority
- CN
- China
- Prior art keywords
- server
- load
- list
- underloading
- server list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明实施方式提出一种网络游戏动态负载均衡方法。包括:当判定服务器超载时,将该超载服务器记入到负载服务器列表,并将该超载服务器的邻近服务器及其负载信息记入到轻载服务器列表;遍历轻载服务器列表以查找超载服务器,将该查找到的超载服务器的邻近服务器及其负载信息记入到轻载服务器列表;将轻载服务器列表中负载最轻的服务器与负载服务器列表中负载最重的服务器执行负载均衡,并更新负载服务器列表和轻载服务器列表。通过动态地寻找轻载服务器,显著提高了负载均衡的效率,能够给玩家提供非常快速的响应速度,满足了网络游戏高实时性的需求。
Description
技术领域
本发明实施方式涉及网络游戏技术领域,更具体地,涉及一种网络游戏动态负载均衡方法。
背景技术
网络(Online Game),又称“在线游戏”,简称“网游”,指以互联网为传输媒介,以游戏运营商服务器和用户计算机为处理终端,以游戏客户端软件为信息交互窗口的旨在实现娱乐、休闲、交流和取得虚拟成就的具有可持续性的个体性多人在线游戏。网络游戏区别与单机游戏而言的,是指玩家必须通过互联网连接来进行多人游戏。一般指由多名玩家通过计算机网络在虚拟的环境下对人物角色及场景按照一定的规则进行操作以达到娱乐和互动目的的游戏产品集合。
大型多人在线网络游戏经常是成千上万的玩家同时在线,为了能够对玩家的信息进行实时响应,通常需要多台服务器处理来自各个玩家的信息。因此,寻找高效的负载均衡算法成为网络游戏中需要解决的重要问题之一。
目前现有技术中,对网络游戏中负载均衡技术的研究还不是很多,动态地图分配是现在网络游戏中普遍采用的策略,分为局部和全局两大类。
在局部负载均衡策略中,按照地图上虚拟对象的分布密度分割地图,当服务器超载时,在局部寻找轻载服务器进行均衡。这种局部的动态负载均衡重新分配所需要的总开销比全局要小的多。然而,当负载分配不均匀,一些相邻服务器都已满负载的时候,局部负载均衡的性能会骤然下降,因此负载均衡效率并不高。
在全局负载均衡策略中,每次服务器超载时,都要对所有的服务器重新进行负载均衡。这种全局负载均衡能够从全局的角度更加均匀的分配负载。然而,随着玩家和服务器的增多,***的开销和需要迁移的玩家数量将急剧增长,因此负载均衡的效率也并不高。
发明内容
本发明实施方式提出一种网络游戏动态负载均衡方法,提高负载均衡效率。
本发明实施方式的具体方案如下:
一种网络游戏动态负载均衡的方法,包括:
当判定服务器超载时,将该超载服务器记入到负载服务器列表,并将该超载服务器的邻近服务器及其负载信息记入到轻载服务器列表;
遍历轻载服务器列表以查找超载服务器,其中将查找到的超载服务器从轻载服务器列表中删除并记入到负载服务器列表,并将该查找到的超载服务器的邻近服务器及其负载信息记入到轻载服务器列表;
根据轻载服务器列表中的负载信息确定出所述轻载服务器列表中服务器的负载状况,并将轻载服务器列表中负载最轻的服务器与负载服务器列表中负载最重的服务器执行负载均衡,并更新所述负载服务器列表和轻载服务器列表。
所述邻近服务器的负载信息包括:邻近服务器的活跃角色数和休息角色数。
所述判定服务器超载为:
判定该服务器的负载大于T1;其中:
T1=0.90×MaxB;
MaxB为不影响处理能力和响应时间情况下的服务器最大负载值。
所述服务器最大负载值等于活跃角色数*25+休息角色数。
所述邻近服务器为该超载服务器的逻辑邻近服务器或随机查找到的服务器。
该方法进一步包括:
在负载服务器列表中负载最重的服务器的与轻载服务器列表中负载最轻的服务器执行负载均衡后,进一步判断负载服务器列表中的该服务器负载是否大于负载上限值,如果是则继续与轻载服务器列表中负载次最轻的服务器执行负载均衡,否则从负载服务器列表中删除该服务器。
所述负载上限值为T2,其中T2=0.80×MaxB;
MaxB为不影响处理能力和响应时间情况下的服务器最大负载值。
所述服务器最大负载值等于活跃角色数*25+休息角色数。
从上述技术方案中可以看出,在本发明实施方式中,当判定服务器超载时,将该超载服务器记入到负载服务器列表,并将该超载服务器的邻近服务器及其负载信息记入到轻载服务器列表;然后遍历轻载服务器列表以查找超载服务器,其中将查找到的超载服务器从轻载服务器列表中删除并记入到负载服务器列表,并将该查找到的超载服务器的邻近服务器及其负载信息记入到轻载服务器列表;接着根据轻载服务器列表中的负载信息确定出所述轻载服务器列表中服务器的负载状况,并将轻载服务器列表中负载最轻的服务器与负载服务器列表中负载最重的服务器执行负载均衡,并更新负载服务器列表和轻载服务器列表。
由此可见,应用本发明实施方式之后,通过动态地寻找轻载服务器,无论是在超载玩家和移动玩家数量的比率上,还是在***的代价上,都有很好的表现,因此显著提高了负载均衡的效率。本发明实施方式采取了高效的轻载服务器寻找方法,服务器的并发承载玩家数量提高了1倍,游戏服务器能够给玩家提供非常快速的响应速度,满足了网络游戏高实时性的需求。
而且,本发明实施方式保证了游戏***运行稳定,这对于要求具有实时性、扩展性、灵活性的网络游戏服务器架构是很适合的。
附图说明
图1为根据本发明实施方式的网络游戏动态负载均衡方法流程图;
图2为根据本发明实施方式的网络游戏动态负载均衡方法示范性流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
在本发明实施方式中,提出一种动态的轻载服务器寻找方法。该方法较好的克服了局部和全局的弊端,降低了***代价,提高了***的响应速度和吞吐量,从而提高负载均衡效率。
图1为根据本发明实施方式的网络游戏动态负载均衡方法流程图。
如图1所示,该方法包括:
步骤101:当判定服务器超载时,将该超载服务器记入到负载服务器列表,并将该超载服务器的邻近服务器及其负载信息记入到轻载服务器列表。
在这里,负载服务器列表(比如,可以命名为OverList)是一个数组,它是在寻找轻载服务器算法中,用来存储负载服务器的列表。
轻载服务器列表(比如,可以命名为LightList)是一个数组,它是在寻找轻载服务器算法中,用来存储轻载服务器的列表。
在这里,邻近服务器的负载信息具体可以包括:邻近服务器的活跃角色数和休息角色数,等等。而且,邻近服务器可以为该超载服务器的逻辑邻近服务器或随机查找到的服务器。比如,邻近服务器可以是IP地址接近的服务器或者逻辑分组相同或接近的服务器,或者是完全随机查找到的服务器。
在一个实施方式中,当该服务器的负载大于T1时则认为该服务器已经超载,其中T1表示超载服务器进行合并时负载的下限值。
优选地,T1=0.90×MaxB;而MaxB为不影响处理能力和响应时间情况下的服务器最大负载值。
为了便于计算,可以假定所有服务器可承担的最大负载值MaxB均相同。
优选地,服务器最大负载值MaxB可以等于活跃角色数*25+休息角色数。
举例说明,假设服务器A的最大负载值为MaxB,而且服务器A当前负载已经大于T1(即0.90×MaxB),则认为服务器A超载。假设该服务器A的邻近服务器为服务器B和服务器C。此时,将服务器A记载入负载服务器列表(OverList)中,而且将服务器B以及服务器B的负载信息、服务器C以及服务器C的负载信息记载入轻载服务器列表(LightList)中。
以上虽然详细罗列了服务器超载值T1的具体大小,本领域技术人员可以意识到,这种罗列仅仅是示范性的,并不用于限定本发明实施方式的保护范围。
步骤102:遍历轻载服务器列表以查找超载服务器,其中将查找到的超载服务器从轻载服务器列表中删除并记入到负载服务器列表,并将该查找到的超载服务器的邻近服务器及其负载信息记入到轻载服务器列表。
在这里,首先遍历轻载服务器列表以查找新的超载服务器。
查找方法类似于步骤101,即当服务器的负载大于T1时则认为该服务器已经超载,其中T1表示超载服务器进行合并时负载的下限值。优选地,T1=0.90×MaxB;MaxB为不影响处理能力和响应时间情况下的服务器最大负载值。
接着上面的实例,假设服务器B的当前负载大于T1,服务器C的当前负载小于T1,则认为服务器B实际上已经超载,而服务器C没有超载,此时从轻载服务器列表(LightList)中删除服务器B,并且将服务器B记载到负载服务器列表(OverList),而继续将服务器C保留在轻载服务器列表(LightList)中。
此步骤为针对轻载服务器列表的遍历循环步骤,因此需要针对服务器B继续查找其邻近服务器,假设服务器B的邻近服务器包括服务器D和服务器E,则将服务器D及其负载信息,服务器E及其负载信息均记载到轻载服务器列表(LightList)中。如果轻载服务器列表(LightList)中持续有超载服务器,则应该持续寻找该超载服务器的邻近服务器。
假设服务器D和服务器E均不超载,至此,负载服务器列表(OverList)中包括服务器A和服务器B,轻载服务器列表(LightList)中包括服务器C、服务器D和服务器E。
步骤103:根据轻载服务器列表中的负载信息确定出轻载服务器列表中服务器的负载状况,并将轻载服务器列表中负载最轻的服务器与负载服务器列表中负载最重的服务器执行负载均衡,并更新负载服务器列表和轻载服务器列表。
在这里,将负载服务器列表中负载最重的服务器与轻载服务器列表中负载最轻的服务器执行负载均衡步骤,然后更新负载服务器列表和轻载服务器列表。
在一个实施方式中,在负载服务器列表中负载最重的服务器的与轻载服务器列表中负载最轻的服务器执行负载均衡后,本发明实施方式进一步判断负载服务器列表中的该服务器负载是否大于负载上限值T2,如果是则继续与轻载服务器列表中负载次最轻的服务器执行负载均衡,否则从负载服务器列表中删除该服务器
为了避免出现服务器间负载抖动的现象,可以设置一个用来限制***负载均衡后的每个服务器负载的上限值T2。优选地,可以取T2=0.80×MaxB。
循环该步骤,直到负载服务器列表(OverList)中所有服务器负载平均值小于等于T2。
以上虽然详细罗列了负载上限值T2的具体大小,本领域技术人员可以意识到,这种罗列仅仅是示范性的,并不用于限定本发明实施方式的保护范围。
基于上述详细分析,图2为根据本发明实施方式的网络游戏动态负载均衡方法示范性流程图。
如图2所示,该方法包括:
步骤201:如果服务器超载且没有被选择,就作为负载均衡的初始服务器记入负载服务器列表(OverList),然后把它的邻近服务器的负载信息(负载信息包括活跃角色数和休息角色数)记入轻载服务器列表(LightList)。
其中:OverList是一个用来存储负载服务器的列表的数组;LightList是一个用来存储轻载服务器的列表的数组。MaxB表示服务器在不影响处理能力和响应时间的情况下的最大负载值,假定所有服务器可承担的最大负载值均相同。
T1表示超载服务器进行合并时,负载的下限值。可以假定取T1=0.90×MaxB。
T2是一个设定的阈值,它用来限制***负载均衡后的每个服务器负载的上限值,避免出现服务器间负载抖动的现象,可以假定取T2=0.80×MaxB。
步骤202:遍历LightList中所有服务器,如果存在服务器负载值大于等于T1的服务器,则作为负载服务器添加到负载服务器列表(OverList),并且把它的邻近服务器的负载信息记入轻载服务器列表(LightList)。因为LightList里新增加了服务器,所以需要继续在LightList里寻找负载的服务器。
步骤203:在LightList中选择负载最轻的服务器,并更新OverList和LightList服务器列表。
具体包括:将轻载服务器列表中负载最轻的服务器与负载服务器列表中负载最重的服务器执行负载均衡,并更新负载服务器列表和轻载服务器列表。
比如:更新负载服务器列表的原则可以是:如果负载服务器列表中服务器的负载在负载均衡后仍然大于T1,则保留在负载服务器列表中,准备下一轮的负载均衡;如果负载服务器列表中服务器的负载在负载均衡后小或等于T1,则将其在负载服务器列表中删除。更新轻载服务器列表的原则是:如果轻载服务器列表中服务器的负载在负载均衡后仍然小于等于T2,则保留在轻载服务器列表中,准备下一轮的负载均衡;如果轻载服务器列表中服务器的负载在负载均衡后大于T2,则将其在轻载服务器列表中删除。
步骤204:循环执行,直到OverList中所有服务器负载平均值正常为止。在这里,循环执行,直到OverList中所有服务器负载平均值小于等于T2。
综上所述,在本发明实施方式中,当判定服务器超载时,将该超载服务器记入到负载服务器列表,并将该超载服务器的邻近服务器及其负载信息记入到轻载服务器列表;然后遍历轻载服务器列表以查找超载服务器,其中将查找到的超载服务器从轻载服务器列表中删除并记入到负载服务器列表,并将该查找到的超载服务器的邻近服务器及其负载信息记入到轻载服务器列表;接着根据轻载服务器列表中的负载信息确定出所述轻载服务器列表中服务器的负载状况,并将轻载服务器列表中负载最轻的服务器与负载服务器列表中负载最重的服务器执行负载均衡,并更新所述负载服务器列表和轻载服务器列表。
由此可见,应用本发明实施方式之后,通过动态地寻找轻载服务器,无论是在超载玩家和移动玩家数量的比率上,还是在***的代价上,都有很好的表现,因此显著提高了负载均衡的效率。本发明实施方式采取了高效的轻载服务器寻找方法,服务器的并发承载玩家数量提高了1倍,游戏服务器能够给玩家提供非常快速的响应速度,满足了网络游戏高实时性的需求。
而且,本发明实施方式保证了游戏***运行稳定,这对于要求具有实时性、扩展性、灵活性的网络游戏服务器架构是很适合的。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种网络游戏动态负载均衡的方法,其特征在于,包括:
当判定服务器超载时,将该超载服务器记入到负载服务器列表,并将该超载服务器的邻近服务器及其负载信息记入到轻载服务器列表;
遍历轻载服务器列表以查找超载服务器,其中将查找到的超载服务器从轻载服务器列表中删除并记入到负载服务器列表,并将该查找到的超载服务器的邻近服务器及其负载信息记入到轻载服务器列表;
根据轻载服务器列表中的负载信息确定出所述轻载服务器列表中服务器的负载状况,并将轻载服务器列表中负载最轻的服务器与负载服务器列表中负载最重的服务器执行负载均衡,并更新所述负载服务器列表和轻载服务器列表;其中更新负载服务器列表的原则是:如果负载服务器列表中服务器的负载在负载均衡后仍然大于T1,则保留在负载服务器列表中,准备下一轮的负载均衡;如果负载服务器列表中服务器的负载在负载均衡后小或等于T1,则将其在负载服务器列表中删除;更新轻载服务器列表的原则是:如果轻载服务器列表中服务器的负载在负载均衡后仍然小于等于T2,则保留在轻载服务器列表中,准备下一轮的负载均衡;如果轻载服务器列表中服务器的负载在负载均衡后大于T2,则将其在轻载服务器列表中删除,其中T1表示超载服务器进行合并时负载的下限值;T2是用来限制***负载均衡后的每个服务器负载的上限值。
2.根据权利要求1所述的网络游戏动态负载均衡的方法,所述邻近服务器的负载信息包括:邻近服务器的活跃角色数和休息角色数。
3.根据权利要求1所述的网络游戏动态负载均衡的方法,所述判定服务器超载为:
判定该服务器的负载大于T1;其中:
T1=0.90×MaxB;
MaxB为不影响处理能力和响应时间情况下的服务器最大负载值。
4.根据权利要求3所述的网络游戏动态负载均衡的方法,所述服务器最大负载值等于活跃角色数*25+休息角色数。
5.根据权利要求1所述的网络游戏动态负载均衡的方法,所述邻近服务器为该超载服务器的逻辑邻近服务器或随机查找到的服务器。
6.根据权利要求1所述的网络游戏动态负载均衡的方法,其特征在于,该方法进一步包括:
在负载服务器列表中负载最重的服务器的与轻载服务器列表中负载最轻的服务器执行负载均衡后,进一步判断负载服务器列表中的该服务器负载是否大于负载上限值,如果是则继续与轻载服务器列表中负载次最轻的服务器执行负载均衡,否则从负载服务器列表中删除该服务器。
7.根据权利要求6所述的网络游戏动态负载均衡的方法,其特征在于,所述负载上限值为T2,其中T2=0.80×MaxB;
MaxB为不影响处理能力和响应时间情况下的服务器最大负载值。
8.根据权利要求7所述的网络游戏动态负载均衡的方法,其特征在于,所述服务器最大负载值等于活跃角色数*25+休息角色数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210151017.8A CN102710615B (zh) | 2012-05-15 | 2012-05-15 | 一种网络游戏动态负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210151017.8A CN102710615B (zh) | 2012-05-15 | 2012-05-15 | 一种网络游戏动态负载均衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102710615A CN102710615A (zh) | 2012-10-03 |
CN102710615B true CN102710615B (zh) | 2014-08-27 |
Family
ID=46903171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210151017.8A Active CN102710615B (zh) | 2012-05-15 | 2012-05-15 | 一种网络游戏动态负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102710615B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873457A (zh) * | 2012-12-17 | 2014-06-18 | 人人游戏网络科技发展(上海)有限公司 | 用于游戏服务器间负载均衡的方法和设备 |
CN108696554B (zh) * | 2017-04-10 | 2021-11-30 | 北京京东尚科信息技术有限公司 | 负载均衡方法和装置 |
CN107070716B (zh) * | 2017-04-14 | 2018-09-11 | 腾讯科技(深圳)有限公司 | 游戏服务器状态获取方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009648A (zh) * | 2006-12-27 | 2007-08-01 | 北京航空航天大学 | 多服务器的分层迭代负载平衡方法 |
CN101742565A (zh) * | 2009-12-11 | 2010-06-16 | 北京北方烽火科技有限公司 | 一种lte移动通信网络中小区间负载均衡方法 |
CN102098728A (zh) * | 2011-01-05 | 2011-06-15 | 北京邮电大学 | 一种移动负载均衡方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010144000A1 (en) * | 2009-06-08 | 2010-12-16 | Bwin Games Ab | Multicasting in an online gaming system |
-
2012
- 2012-05-15 CN CN201210151017.8A patent/CN102710615B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009648A (zh) * | 2006-12-27 | 2007-08-01 | 北京航空航天大学 | 多服务器的分层迭代负载平衡方法 |
CN101742565A (zh) * | 2009-12-11 | 2010-06-16 | 北京北方烽火科技有限公司 | 一种lte移动通信网络中小区间负载均衡方法 |
CN102098728A (zh) * | 2011-01-05 | 2011-06-15 | 北京邮电大学 | 一种移动负载均衡方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102710615A (zh) | 2012-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12015563B2 (en) | Management of resource affinities in computing systems having multiple cores | |
CN110474966B (zh) | 处理云平台资源碎片的方法及相关设备 | |
US10778756B2 (en) | Location of actor resources | |
CN108499100B (zh) | 一种基于边缘计算的云游戏错误恢复方法及*** | |
CN109548155B (zh) | 一种分布式非平衡边缘云网络接入与资源分配方法 | |
US20150196841A1 (en) | Load balancing system and method for rendering service in cloud gaming environment | |
CN109548031B (zh) | 一种非平衡边缘云网络接入与资源分配方法 | |
CN102970379A (zh) | 在多个服务器之间实现负载均衡的方法 | |
US10397117B2 (en) | System and method for packet distribution on a network | |
CN103347068A (zh) | 一种基于代理集群网络缓存加速方法 | |
CN110233866B (zh) | 一种负载均衡方法及负载均衡器 | |
CN102710615B (zh) | 一种网络游戏动态负载均衡方法 | |
CN106998340B (zh) | 一种板卡资源的负载均衡方法及装置 | |
CN108965154A (zh) | 对象存储***中的业务流量控制方法及装置 | |
Fan et al. | CTOM: Collaborative task offloading mechanism for mobile cloudlet networks | |
Patel et al. | A survey on load balancing in cloud computing | |
CN108388471B (zh) | 一种基于双门限约束虚机迁移的管理方法 | |
CN103218265B (zh) | 基于空间密度聚类的并行式虚拟角色划分方法 | |
US9172633B2 (en) | Traffic engineering system for preventing demand deadlock and achieving uniform link utilization | |
CN107113323B (zh) | 一种数据存储方法、装置和*** | |
CN108200185B (zh) | 一种实现负载均衡的方法及装置 | |
US11025712B1 (en) | Load balancer employing slow start, weighted round robin target selection | |
CN109981696B (zh) | 一种负载均衡方法、装置及设备 | |
CN113395183B (zh) | 网络仿真平台vlan互联的虚拟节点调度方法与*** | |
JP2017037445A (ja) | サーバ管理装置およびサーバ管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |