CN111135585B - 游戏匹配系统 - Google Patents
游戏匹配系统 Download PDFInfo
- Publication number
- CN111135585B CN111135585B CN201911348021.1A CN201911348021A CN111135585B CN 111135585 B CN111135585 B CN 111135585B CN 201911348021 A CN201911348021 A CN 201911348021A CN 111135585 B CN111135585 B CN 111135585B
- Authority
- CN
- China
- Prior art keywords
- game
- matching
- matching process
- client
- request
- 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
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/79—Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
- A63F13/795—Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for finding other players; for building a team; for providing a buddy list
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种游戏匹配系统,属于计算机技术领域。所述系统包括:多个控制节点,每个控制节点运行至少一个控制进程,所述控制进程用于接收客户端发送的游戏请求,并将所述游戏请求发送至对应的匹配进程;多个匹配节点,每个匹配节点运行至少一个所述匹配进程,所述匹配进程用于根据所述游戏请求将相应的客户端匹配至对应的游戏服务器以进行游戏;至少一个监测节点,用于监测所述控制进程和所述匹配进程的运行状态。本公开可以提高游戏的匹配效率,增强匹配系统的灵活性和容灾处理能力。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种游戏匹配系统。
背景技术
随着互联网的发展,网络游戏的类型日益丰富,其中,组队游戏成为一种重要的游戏模式,以MOBA(Multiplayer Online Battle Arena,多人在线战术竞技游戏)类游戏为例,它是指由多个玩家组成多个游戏队伍,并在游戏队伍之间进行游戏。
匹配系统是组队游戏中的核心系统,用于将多个玩家组成游戏队伍,目前的匹配系统包括匹配服务器和战斗服务器,分别用于玩家匹配和游戏,在该系统中,玩家请求是根据玩家所在地区随机分配至服务器的,当玩家数量过多或过少时,会导致玩家匹配等待时间较长,因此匹配效率不高。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供了一种游戏匹配系统,进而至少在一定程度上改善现有技术中匹配系统效率不高的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的第一方面,提供一种游戏匹配系统,所述系统包括:多个控制节点,每个控制节点运行至少一个控制进程,所述控制进程用于接收客户端发送的游戏请求,并将所述游戏请求发送至对应的匹配进程;多个匹配节点,每个匹配节点运行至少一个所述匹配进程,所述匹配进程用于根据所述游戏请求将相应的客户端匹配至对应的游戏服务器以进行游戏;至少一个监测节点,用于监测所述控制进程和所述匹配进程的运行状态。
在本公开的一种示例性实施方式中,所述系统还包括:配置节点,用于配置所述控制进程和所述匹配进程的数量。
在本公开的一种示例性实施方式中,所述配置节点通过执行以下方法,配置所述控制进程的数量:获取最近的第一预设周期内各所述控制进程接收和发送游戏请求的数量;若存在至少一个所述控制进程,其接收和发送游戏请求的数量大于第一预设阈值,则增加所述控制进程的数量。
在本公开的一种示例性实施方式中,所述配置节点通过执行以下方法,配置所述匹配进程的数量:获取最近的第二预设周期内各所述匹配进程接收游戏请求的数量;若存在至少一个所述匹配进程,其接收游戏请求的数量大于第二预设阈值,则增加所述匹配进程的数量。
在本公开的一种示例性实施方式中,所述控制进程通过执行以下方法,接收客户端发送的游戏请求:采用哈希算法将所述游戏请求中的用户标识转换为哈希值;根据所述哈希值,在所述控制进程中确定所述用户标识对应的目标控制进程,由所述目标控制进程接收所述游戏请求。
在本公开的一种示例性实施方式中,所述控制进程在接收客户端发送的游戏请求后,通过执行以下方法,以确定所述游戏请求对应的匹配进程:获取最近的预设时间内各匹配进程所接收的游戏请求的数量,以得到各匹配进程的并发参数;获取各匹配进程当前的负载参数;根据所述并发参数和所述负载参数,确定所述游戏请求对应的匹配进程。
在本公开的一种示例性实施方式中,所述匹配节点通过执行以下方法,根据所述游戏请求将相应的客户端匹配至对应的游戏服务器以进行游戏:在所述匹配进程中,根据预设匹配规则将所述客户端与其他客户端匹配为一个游戏分组;获取所述客户端到各游戏服务器的延迟时间;根据所述延迟时间,将所述游戏分组分配至对应的游戏服务器,以使所述游戏分组对应的各所述客户端在所述游戏服务器进行游戏。
在本公开的一种示例性实施方式中,在监测所述控制进程的运行状态时,所述监测节点,还用于当所述控制进程发生异常时,重启所述控制进程,并向所述控制进程中的游戏请求所对应的客户端发送异常提示信息。
在本公开的一种示例性实施方式中,在监测所述匹配进程的运行状态时,所述监测节点,还用于当任一所述匹配进程发生异常时,重启该匹配进程,并向所述控制进程发送关于该匹配进程的异常信息。
在本公开的一种示例性实施方式中,所述匹配节点,还用于响应于所述客户端的匹配轮询请求,向所述客户端发送所述匹配进程的运行状态信息,使所述客户端根据所述运行状态信息判断所述匹配进程是否正常运行。
本公开具有以下有益效果:
本示例性实施方式提出了一种游戏匹配系统,该游戏匹配系统包括控制节点、匹配节点和监测节点,其中,控制节点可以通过运行控制进程,将游戏请求发送至对应的匹配进程;匹配节点可以通过运行匹配进程,根据游戏请求将相应的客户端匹配至对应的游戏服务器;监测节点可以监测控制进程和匹配进程的运行状态。一方面,本示例性实施方式通过设置控制节点和匹配节点,可以将游戏请求的处理过程流程化,由控制节点确定客户端游戏请求对应的匹配节点并将其发送至该匹配节点,能够均衡各匹配节点的负载量,避免了因随机发送游戏请求而将游戏请求发送至负载过高的服务器,从而提升了匹配系统处理游戏请求的效率,并且减小了匹配系统因负载过高而崩溃的风险;另一方面,通过监测控制进程和匹配进程的运行状态,能够在系统出现异常时及时定位,为进一步排除系统故障提供技术支撑。
在本公开的一些实施方式中,通过配置控制进程和匹配进程的数量可以使各系统节点的负载达到一定程度的平衡,同时增强了游戏匹配系统的灵活性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施方式,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本示例性实施方式中一种游戏匹配系统的架构示意图;
图2示出本示例性实施方式中一种基于上述游戏匹配系统的匹配流程图;
图3示出本示例性实施方式中一种基于上述游戏匹配系统的子流程图;
图4示出本示例性实施方式中一种监测节点的示意图;
图5示出本示例性实施方式中另一种监测节点的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本公开的示例性实施方式首先提供了一种游戏匹配系统,参考图1所示,示出了本示例性实施方式中的一种游戏匹配架构的示意图,如图所示,匹配架构100可以包括客户端110、游戏匹配系统120、目标服务器130,其中,游戏匹配系统120包括控制节点121、匹配节点122和监测节点123。
在匹配系统120中,控制节点121可以和客户端110连接,以执行接收客户端110的游戏请求的业务逻辑;匹配节点122可以和控制节点121连接,以接收控制节点121发送的游戏请求,并确定该游戏请求对应的游戏服务器;监测节点123可以分别连接控制节点121和匹配节点122,以监测控制节点121和匹配节点122的运行状态;客户端110可以是手机、平板电脑或台式计算机中的一种或多种,玩家可以通过客户端110上的应用程序向控制节点121发送游戏请求。
需要说明的是,在图1所示的游戏匹配系统120中,仅示出了一个控制节点121和一个匹配节点122,一般的,游戏匹配系统120可以包括多个控制节点121和多个匹配节点122,以处理客户端的并发请求。
下面对本公开示例性实施方式的实现细节进行详细阐述:
图2示出了本示例性实施方式的一种流程,可以包括以下步骤S210~S230:
步骤S210.多个控制节点,每个控制节点运行至少一个控制进程,该控制进程用于接收客户端发送的游戏请求,并将游戏请求发送至对应的匹配进程。
其中,控制节点可以是用于接收和转发游戏请求的计算机设备,根据游戏请求的数量,其数量通常可以设置为多个;游戏请求可以是相应的请求数据包,在该数据包中可以包括一定字节的用户标识数据。
控制节点可以接收客户端发送的游戏请求,并根据接收到的游戏请求中的用户标识等信息确定用于处理该游戏请求的控制进程,从而将游戏请求发送至对应的控制进程;各控制进程可以在接收客户端发送的游戏请求后将其发送至对应的匹配进程。
为了提高控制节点处理游戏请求的速率,可以将控制节点设置为多个,每个控制节点可以运行多个控制进程,每个控制进程可以接收一定数量的游戏请求,在一种可选的实施方式中,步骤S210中控制节点可以通过执行以下方法,确定用于接收客户端游戏请求的控制进程:
采用哈希算法将游戏请求中的用户标识转换为哈希值;
根据哈希值,在控制进程中确定用户标识对应的目标控制进程,由目标控制进程接收游戏请求。
其中,哈希算法也可以称为哈希函数,是指通过哈希函数将被查找的关键字转换为数组的索引,从而根据索引快速确定关键字位置的方法。
在接收到客户端发送的游戏请求后,控制节点可以采用哈希算法将游戏请求中的用户标识转换为哈希值,以哈希算法中的平方取中法为例,假设控制节点接收到一组游戏请求中的用户标识依次为x1、x2、x3和x4,其平方依次为x12、x22、x32和x42,根据平方取中的哈希函数,将平方值的中间10位确定为上述用户标识的哈希值;在得到用户标识的哈希值后,可以通过取余法确定用户标识对应的目标控制进程,例如假设将用户标识转换为哈希值后得到的值为m,控制进程的数量为n,将m对n取余得到的结果x作为控制进程的编号,该编号对应的控制进程即为上述游戏请求对应的目标控制进程。
匹配进程的数量也可以根据需求设置为多个,因此,在接收到客户端发送的游戏请求后,需要在匹配进程中确定用于处理上述游戏请求的匹配进程,在一种可选的实施方式中,在控制进程接收到客户端发送的游戏请求后,可以通过执行以下方法,确定游戏请求的匹配进程:
获取最近的预设时间内各匹配进程所接收的游戏请求的数量,以得到各匹配进程的并发参数;
获取各匹配进程当前的负载参数;
根据并发参数和所述负载参数,确定游戏请求对应的匹配进程。
其中,预设时间是指接收游戏请求的时间长度,通常可以根据单位时间内增加的游戏请求数据确定并进行调整,例如当单位时间增加的游戏请求数量较大时,则预设时间可以设置为1S或更短的时间,当单位时间增加的游戏请求数量较小时,则可以适当增加预设时间;并发参数是指在预设时间内各匹配进程接收的游戏请求的总数量,可以通过监测预设时间段内向各匹配进程转发游戏请求的数量确定;负载参数是指当前时刻下匹配进程中等待处理的游戏请求数量,可以通过向匹配进程发送数量查询请求,以获取当前时刻下匹配进程的负载参数。
在获取并发参数和负载参数后,可以根据并发参数和负载参数的值的关系确定游戏请求对应的匹配进程,例如当并发参数最小的匹配进程和负载参数最小的匹配进程相同时,可以将相同的匹配进程确定为上述游戏请求对应的匹配进程;当并发参数最小的匹配进程和负载参数最小的匹配进程不同时,可以将负载参数最小的匹配进程优先确定为上述游戏请求对应的匹配进程。
步骤S220.多个匹配节点,每个匹配节点运行至少一个匹配进程,该匹配进程用于根据游戏请求将相应的客户端匹配至对应的游戏服务器以进行游戏。
其中,匹配节点可以是相应的服务器,根据游戏请求的数量,匹配节点的数量也可以设置为多个;匹配进程可以是匹配节点中根据游戏请求将多个客户端匹配为一组的运行程序;游戏服务器可以用于处理客户端的游戏请求或匹配请求。
匹配节点可以根据各匹配进程的信息确定用于处理游戏请求的匹配进程,并确定该游戏请求对应的目标服务器。
在实际需求中,当参与游戏的客户端数量较多时,用于客户端进行游戏的服务器可以设置为多个,当接收到一个客户端发送的游戏请求时,可以将该游戏请求发送至对应的游戏服务器,使游戏请求可以及时得到处理,在一种可选的实施方式中,匹配节点可以通过以下步骤S310~S330,实现确定游戏请求对应的游戏服务器,并根据该游戏请求将相应的客户端发送至对应的游戏服务器以进行游戏的方法:
步骤S310.在匹配进程中,根据预设匹配规则将客户端与其他客户端匹配为一个游戏分组。
其中,预设匹配规则是指将多个客户端匹配为一个游戏分组的规则,通常可以根据客户端的等级、游戏值等信息匹配游戏实力相当的客户端,例如在MOBA类游戏中,可以根据客户端的等级、段位、角色熟练度等信息将多个客户端匹配为一组。
步骤S320.获取客户端到各游戏服务器的延迟时间。
其中,客户端和各游戏服务器之间的延迟时间指的是服务器接收到客户端发送数据包的时间,可以根据向服务器发送数据包的时间和接收回复数据包的时间确定,例如客户端发送数据包的本地时间为t1,接收回复数据包的本地时间为t2,则游戏请求在客户端和游戏服务器之间的延迟时间可以确定为(t2-t1)/2。
步骤S330.根据延迟时间,将游戏分组分配至对应的游戏服务器,以使游戏分组对应的各客户端在游戏服务器进行游戏。
根据延迟时间,确定游戏分组对应的游戏服务器,例如,可以将延迟时间最短的游戏服务器确定为上述游戏分组对应的游戏服务器,由此游戏分组中的各客户端可以通过该游戏服务器进行游戏。
当匹配进程中的游戏请求数量较多时,可能会导致匹配进程崩溃,而在该匹配进程中的游戏请求则无法得到处理,因此,在通过匹配进程处理客户端的游戏请求时,可以监测匹配进程的运行状态,以根据其运行状态确定是否将匹配请求转发至该匹配进程。
在一种可选的实施方式中,匹配节点可以响应于客户端的匹配轮询请求,向客户端发送匹配进程的运行状态信息,使客户端根据运行状态信息判断上述匹配进程是否正常运行。
当客户端进入到匹配进程后,客户端可以定时轮询自己在匹配进程中的状态,例如:当前匹配到了几个合适的队友,这个定时轮询的请求可以用作对匹配进程的心跳检测。当匹配进程出现异常时,客户端将无法收到轮询的结果,当无法收到轮询结果的时间超出预设阈值后,就认为匹配进程出现了异常,客户端可以取消此次匹配并回到正常状态,如果控制进程没有异常,则客户端可以继续通过其他匹配进程进行匹配,并在异常进程恢复之前不将客户端的游戏请求转发给异常匹配进程。
步骤S230.至少一个监测节点,用于监测控制进程和匹配进程的运行状态。
其中,监测节点可以是相应的服务器,也可以是具备监测功能的程序模块。
当匹配进程出现异常时,该匹配进程中的游戏请求不能被处理,因此,通过监测节点可以监测各控制进程和各匹配进程的运行状态,当控制进程或匹配进程出现异常时,可以在一段时间内停止向该进程发送游戏请求,直至该进程恢复正常运行状态。
系统的容灾处理是完善系统性能的重要环节,可以保证匹配系统保持在线状态,并确保各服务功能正常运行,因此,为了提高匹配系统的异常处理能力,在一种可选的实施方式中,监测节点可以监测各控制进程的运行状态,当监测节点监测到控制进程发生异常时,可以重启该控制进程,并向控制进程中的游戏请求所对应的客户端发送异常提示信息。
其中,监测节点监测控制进程可以通过向该进程发送查询请求,并接收该进程关于查询请求的回复数据,当在一定时间段内未接收到回复数据时,则确定控制进程发生异常,开始重启该控制进程,同时向控制进程中各游戏请求对应的客户端发送异常提示信息,以确定客户端是否需要停止此次匹配或重新开始匹配。当控制进程重启完成后,可以向监测节点发送重启完成信息以重新接收客户端发送的游戏请求。
参考图4所示,示出了一种监测节点对控制进程进行监测的示意图,监测节点可以通过保持和控制进程的心跳检测,确定控制进程1和控制进程2处于活跃、可用的状态,例如当控制节点出现异常导致控制进程1异常结束时,监测节点通过心跳检测发现控制进程1的异常状态。此时,监测节点可以重启出现故障的控制进程1,以使其重新可用。由于客户端在选择控制进程时,可以根据自己的用户标识所对应的哈希值确定对应的控制进程的,所以客户端和控制进程的关系是一一对应的,当控制进程1出现故障时,通过监测节点通知对应的客户端,并给出异常提示,以使客户端取消当前匹配操作,并通知客户端在一段时间后重新进行匹配操作。
在一种可选的实施方式中,监测节点还可以监测匹配进程的运行状态,当监测到任一匹配进程发生异常时,可以重启该匹配进程,并向控制进程发送关于该匹配进程的异常信息。
其中,监测节点监测匹配进程可以通过向匹配进程发送查询请求,并接收该进程关于查询请求的回复数据,当在一定时间段内未接收到回复数据时,则确定匹配进程发生异常,开始重启该匹配进程,同时向对应的控制进程发送该匹配进程的异常信息,以使控制进程在重启过程中停止向该匹配进程发送游戏请求。
图5示出了一种监测节点监测匹配进程的示意图,与对控制进程的监测相似,监测节点可以保持和匹配进程1和匹配进程2的心跳,以确认匹配进程1和匹配进程2均处于可用状态,当匹配进程1发生异常时,监测节点可以通过心跳发现该匹配进程失活,并重启该匹配进程。在重启匹配进程1的同时,监测节点还可以通知控制进程1对应的匹配进程1出现异常,由此控制进程1在后面的游戏请求转发时便不会发给有异常的匹配进程1,直到匹配进程1恢复运行。
本示例性实施方式中,控制进程和匹配进程的数量可以根据游戏请求的数量进行调整,因此,在一种可选的实施方式中,参考图1所示,游戏匹配系统120还可以包括配置节点124,配置节点124可以是存储控制进程和匹配进程数量的特定数据库或数据平台。
根据步骤S210可知,控制进程可以接收客户端的游戏请求,并将游戏请求发送至对应的匹配进程,当游戏请求的数量较多时,可以通过配置控制进程的数量,以使各游戏请求能够在较短的时间内转发至对应的匹配进程,具体的,在一种可选的实施方式中,配置节点可以通过执行以下方法确定控制进程的数量:
获取最近的第一预设周期内各控制进程接收和发送游戏请求的数量;
若存在至少一个控制进程,其接收和发送游戏请求的数量大于第一预设阈值,则增加控制进程的数量。
其中,第一预设周期是指各控制进程接收和发送游戏请求的时间间隔,通常可以根据游戏请求的数量进行设置;第一预设阈值是指在第一预设周期内各控制进程接收和发送游戏请求的最大数量,可以根据第一预设周期内控制进程接收和发送游戏请求的数量确定,例如可以将第一预设周期内控制进程接收和发送游戏请求的平均值设置为第一预设阈值。
当各控制进程中存在一个控制进程接收和发送游戏请求的数量大于第一预设阈值时,说明此时控制进程的负载可能较高,因此可以增加控制进程的数量,以使新接收的游戏请求可以被分配至增加的控制进程,从而使各控制进程的负载达到均衡。
根据步骤S220可知,匹配进程可以将游戏请求匹配至对应的游戏服务器,以使游戏请求对应的客户端进行游戏,当游戏请求数量较多时,对应的可以通过配置匹配进程的数量,使各游戏请求能够在较短的时间内得到处理,在一种可选的实施方式中,配置节点可以通过执行以下方法配置匹配进程的数量:
获取最近的第二预设周期内各匹配进程接收游戏请求的数量;
若存在至少一个匹配进程,其接收游戏请求的数量大于第二预设阈值,则增加匹配进程的数量。
其中,第二预设周期是指各匹配进程接收游戏请求的时间间隔,通常可以根据游戏请求的数量进行设置;第二预设阈值是指在第二预设周期内各匹配进程接收游戏请求的最大数量,可以根据第二预设周期内控制进程接收和发送游戏请求的数量确定,例如可以将第二预设周期内匹配进程接收游戏请求的平均值设置为第二预设阈值。
当各匹配进程中存在一个匹配进程接收游戏请求的数量大于第二预设阈值时,说明此时匹配进程的负载可能较高,因此可以增加匹配进程的数量,以使新接收的游戏请求可以被分配至增加的匹配进程,从而使各匹配进程的负载达到均衡。
通过上述配置控制进程和匹配进程数量的方法,可以均衡控制节点和匹配节点中各进程的负载,使其能够处理系统中相应数量的游戏请求,因而提升了游戏匹配系统对于游戏请求的处理效率。
综上所述,本示例性实施方式提出了一种游戏匹配系统,该游戏匹配系统包括控制节点、匹配节点和监测节点,其中,控制节点可以通过运行控制进程,将游戏请求发送至对应的匹配进程;匹配节点可以通过运行匹配进程,根据游戏请求将相应的客户端匹配至对应的游戏服务器;监测节点可以监测控制进程和匹配进程的运行状态。一方面,本示例性实施方式通过设置控制节点和匹配节点,可以将游戏请求的处理过程流程化,由控制节点确定客户端游戏请求对应的匹配节点并将其发送至该匹配节点,能够均衡各匹配节点的负载量,避免了因随机发送游戏请求而将游戏请求发送至负载过高的服务器,从而提升了匹配系统处理游戏请求的效率,并且减小了匹配系统因负载过高而崩溃的风险;另一方面,通过监测控制进程和匹配进程的运行状态,能够在系统出现异常时及时定位,为进一步排除系统故障提供技术支撑。
在本公开的一些实施方式中,通过配置控制进程和匹配进程的数量可以使各系统节点的负载达到一定程度的平衡,同时增强了游戏匹配系统的灵活性。
此外,上述附图仅是根据本公开示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个节点中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
Claims (8)
1.一种游戏匹配系统,其特征在于,所述系统包括:
多个控制节点,每个控制节点运行至少一个控制进程,所述控制进程用于接收客户端发送的游戏请求,并将所述游戏请求发送至对应的匹配进程;
多个匹配节点,每个匹配节点运行至少一个所述匹配进程,所述匹配进程用于根据所述游戏请求将相应的客户端匹配至对应的游戏服务器以进行游戏;
至少一个监测节点,用于监测所述控制进程和所述匹配进程的运行状态;
配置节点,用于配置所述控制进程和所述匹配进程的数量;
所述配置节点通过执行以下方法,配置所述控制进程的数量和/或所述匹配进程的数量:
获取最近的第一预设周期内各所述控制进程接收和发送游戏请求的数量;若存在至少一个所述控制进程,其接收和发送游戏请求的数量大于第一预设阈值,则增加所述控制进程的数量;
获取最近的第二预设周期内各所述匹配进程接收游戏请求的数量;若存在至少一个所述匹配进程,其接收游戏请求的数量大于第二预设阈值,则增加所述匹配进程的数量。
2.根据权利要求1所述的游戏匹配系统,其特征在于,所述控制进程通过执行以下方法,接收客户端发送的游戏请求:
采用哈希算法将所述游戏请求中的用户标识转换为哈希值;
根据所述哈希值,在所述控制进程中确定所述用户标识对应的目标控制进程,由所述目标控制进程接收所述游戏请求。
3.根据权利要求1所述的游戏匹配系统,其特征在于,所述控制进程在接收客户端发送的游戏请求后,通过执行以下方法,以确定所述游戏请求对应的匹配进程:
获取最近的预设时间内各匹配进程所接收的游戏请求的数量,以得到各匹配进程的并发参数;
获取各匹配进程当前的负载参数;
根据所述并发参数和所述负载参数,确定所述游戏请求对应的匹配进程。
4.根据权利要求3所述的游戏匹配系统,其特征在于,所述根据所述并发参数和所述负载参数,确定所述游戏请求对应的匹配进程,包括:
获取所述并发参数最小时对应的第一匹配进程,以及所述负载参数最小时对应的第二匹配进程;
在所述第一匹配进程与所述第二匹配进程相同的情况下,将所述第一匹配进程或所述第二匹配进程确定为所述游戏请求对应的匹配进程;否则,将所述第二匹配进程确定为所述游戏请求对应的匹配进程。
5.根据权利要求1所述的游戏匹配系统,其特征在于,所述匹配节点通过执行以下方法,根据所述游戏请求将相应的客户端匹配至对应的游戏服务器以进行游戏:
在所述匹配进程中,根据预设匹配规则将所述客户端与其他客户端匹配为一个游戏分组;
获取所述客户端到各游戏服务器的延迟时间;
根据所述延迟时间,将所述游戏分组分配至对应的游戏服务器,以使所述游戏分组对应的各所述客户端在所述游戏服务器进行游戏。
6.根据权利要求1所述的游戏匹配系统,其特征在于,在监测所述控制进程的运行状态时,所述监测节点,还用于当所述控制进程发生异常时,重启所述控制进程,并向所述控制进程中的游戏请求所对应的客户端发送异常提示信息。
7.根据权利要求1所述的游戏匹配系统,其特征在于,在监测所述匹配进程的运行状态时,所述监测节点,还用于当任一所述匹配进程发生异常时,重启该匹配进程,并向所述控制进程发送关于该匹配进程的异常信息。
8.根据权利要求1所述的游戏匹配系统,其特征在于,所述匹配节点,还用于响应于所述客户端的匹配轮询请求,向所述客户端发送所述匹配进程的运行状态信息,使所述客户端根据所述运行状态信息判断所述匹配进程是否正常运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911348021.1A CN111135585B (zh) | 2019-12-24 | 2019-12-24 | 游戏匹配系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911348021.1A CN111135585B (zh) | 2019-12-24 | 2019-12-24 | 游戏匹配系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111135585A CN111135585A (zh) | 2020-05-12 |
CN111135585B true CN111135585B (zh) | 2023-09-08 |
Family
ID=70519659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911348021.1A Active CN111135585B (zh) | 2019-12-24 | 2019-12-24 | 游戏匹配系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111135585B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111659126B (zh) * | 2020-07-08 | 2023-03-03 | 腾讯科技(深圳)有限公司 | 匹配进程的分配方法、装置、服务器、终端及存储介质 |
CN116173495A (zh) * | 2023-02-09 | 2023-05-30 | 广州延利网络科技有限公司 | 游戏进程的分配控制方法、装置、电子设备以及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101521683A (zh) * | 2009-03-19 | 2009-09-02 | 深圳市新飞扬数码技术有限公司 | 一种网络游戏系统及其接入方法、客户端通讯方法 |
-
2019
- 2019-12-24 CN CN201911348021.1A patent/CN111135585B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101521683A (zh) * | 2009-03-19 | 2009-09-02 | 深圳市新飞扬数码技术有限公司 | 一种网络游戏系统及其接入方法、客户端通讯方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111135585A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10020980B2 (en) | Arbitration processing method after cluster brain split, quorum storage apparatus, and system | |
CN103562890B (zh) | 在发布/订阅消息系统中管理消息订阅的方法和系统 | |
KR100812374B1 (ko) | 클러스터 시스템에서 프로토콜 네트워크 장애 관리 시스템및 방법 | |
US7518983B2 (en) | Proxy response apparatus | |
CN111135585B (zh) | 游戏匹配系统 | |
US9886358B2 (en) | Information processing method, computer-readable recording medium, and information processing system | |
JP2005209201A (ja) | 高可用性クラスタにおけるノード管理 | |
CN112328421B (zh) | 一种系统故障处理方法、装置、计算机设备和存储介质 | |
US20170270015A1 (en) | Cluster Arbitration Method and Multi-Cluster Cooperation System | |
US20120307628A1 (en) | Communication apparatus and packet distribution method | |
CN109412890B (zh) | 基于dds的联合试验平台中间件节点状态检测方法 | |
CN111193769A (zh) | 恢复长连接的方法、系统、装置、电子设备及存储介质 | |
US10135939B2 (en) | Method and apparatus for sending delivery notification of network application-related product | |
KR20220013846A (ko) | 블록체인 네트워크의 블록 합의 방법 및 장치 | |
CN113965576B (zh) | 基于容器的大数据采集方法、装置、存储介质和设备 | |
CN106790610B (zh) | 一种云系统消息分发方法,装置和系统 | |
CN111880947B (zh) | 一种数据传输方法及装置 | |
Dadgar et al. | Lifeguard: Local health awareness for more accurate failure detection | |
CN109714328B (zh) | 游戏集群的容量调整方法和装置 | |
CN111880932A (zh) | 一种基于多网口的数据存储方法及装置 | |
KR100832543B1 (ko) | 계층적 다중 백업 구조를 갖는 고가용성 클러스터 시스템및 이를 이용한 고가용성 구현 방법 | |
US20140082150A1 (en) | Method of establishing a network socket with a data server | |
CN112367386A (zh) | 基于Ignite的自动化运维方法、装置及计算机设备 | |
CN113704024A (zh) | 数据处理方法、装置、相关设备及存储介质 | |
CN112328375B (zh) | 一种用于跟踪分布式系统的数据片段的关联方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |