首页> 中国专利> 一种降低用户组匹配过程中负载峰值的方法和装置

一种降低用户组匹配过程中负载峰值的方法和装置

摘要

本发明实施例提供一种降低用户组匹配过程中负载峰值的方法和装置,涉及互联网技术领域,解决了用户组匹配时容易造成服务器负载峰值,降低服务器的性能的问题。其方法为:获取用户组的匹配目标,其中,所述用户组的匹配目标用于表示该用户组需要满足的条件集合;根据所述用户组的匹配目标,在维护的用户列表中获取用户集合;计算所述用户集合与所述匹配目标的匹配度;根据所述用户集合与所述匹配目标的匹配度,以及服务器的负载情况,动态判断所述用户集合是否满足所述用户组的匹配目标。若所述用户集合不满足所述用户组的匹配目标,则重新获取新的用户集合,若所述用户集合满足所述用户组的匹配目标,则确定所述用户集合为匹配成功的用户组。

著录项

  • 公开/公告号CN105302808A

    专利类型发明专利

  • 公开/公告日2016-02-03

    原文格式PDF

  • 申请/专利权人 腾讯科技(深圳)有限公司;

    申请/专利号CN201410248206.6

  • 发明设计人 姜海涛;张正;

    申请日2014-06-05

  • 分类号G06F17/30;

  • 代理机构北京中博世达专利商标代理有限公司;

  • 代理人张娜

  • 地址 518000 广东省深圳市福田区振兴路赛格科技园2栋东403室

  • 入库时间 2023-12-18 13:57:21

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-08-09

    授权

    授权

  • 2017-01-18

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20140605

    实质审查的生效

  • 2016-02-03

    公开

    公开

说明书

技术领域

本发明涉及服务器的处理技术,尤其涉及一种降低用户组匹配过程中负载峰值的方法和装置。

背景技术

目前,互联网已经成为人们日常生活中重要的沟通渠道。借由各种应用程序,人们可以通过互联网进行各种社交行为。例如,网络游戏即是一种具有社交属性的应用程序。

服务器可以通过用户组匹配过程,将具有一定共性的用户聚集到一起,从而使用户寻找社交对象变得更方便,快捷。

现有的用户组匹配过程中,服务器从等待队列中获取用户集合,并判断用户集合是否符合匹配目标,如果符合,则完成匹配,将用户集合移出等待队列,并调用匹配成功处理函数,如果不符合,则继续获取用户集合。如果最终无法获得满足匹配目标的用户集合,则匹配失败。

由上可知,服务器的主要性能消耗在获得用户集合和验证用户集合是否满足匹配目标的循环上。如果长时间无法获得满足匹配目标的用户集合,则服务器需要反复进行用户集合获取以及匹配目标验证工作。由于这一过程所消耗的时间与服务器用户分布状态相关,因而时间开销浮动较大,容易造成很高的服务器负载峰值,进而降低服务器的性能,延长用户的等待时间。

发明内容

本发明的实施例提供一种降低用户组匹配过程中负载峰值的方法和装置,能够降低服务器负载峰值,提高服务器的性能,缩短用户的等待时间。

为达到上述目的,本发明的实施例采用如下技术方案:

一方面,本发明实施例提供了一种降低用户组匹配过程中负载峰值的方法,所述方法包括:

获取用户组的匹配目标,其中,所述用户组的匹配目标用于表示该用户组需要满足的条件集合;

根据所述用户组的匹配目标,在维护的用户列表中获取用户集合;

计算所述用户集合与所述匹配目标的匹配度;

根据所述用户集合与所述匹配目标的匹配度,以及服务器的负载情况,动态判断所述用户集合是否满足所述用户组的匹配目标;

若所述用户集合不满足所述用户组的匹配目标,则重新获取新的用户集合,若所述用户集合满足所述用户组的匹配目标,则确定所述用户集合为匹配成功的用户组。

另一方面,本发明实施例还提供了一种降低用户组匹配过程中负载峰值的装置,包括:

匹配目标获取单元,用于获取用户组的匹配目标,其中,所述用户组的匹配目标用于表示该用户组需要满足的条件集合;

用户集合获取单元,用于根据所述用户组的匹配目标,在维护的用户列表中获取用户集合;

计算单元,用于计算所述用户集合与所述匹配目标的匹配度;

判断单元,用于根据所述用户集合与所述匹配目标的匹配度,以及服务器的负载情况,动态判断所述用户集合是否满足所述用户组的匹配目标;

所述用户集合获取单元还用于,若所述用户集合不满足所述用户组的匹配目标,则重新获取新的用户集合;

确定单元,用于若所述用户集合满足所述用户组的匹配目标,则确定所述用户集合为匹配成功的用户组。

本发明实施例提供一种降低用户组匹配过程中负载峰值的方法和服务器,首先,获取用户组的匹配目标,其中,所述用户组的匹配目标用于表示该用户组需要满足的条件集合;再根据所述用户组的匹配目标,在维护的用户列表中获取用户集合;然后计算所述用户集合与所述匹配目标的匹配度;最后根据所述用户集合与所述匹配目标的匹配度,以及服务器的负载情况,动态判断所述用户集合是否满足所述用户组的匹配目标,若所述用户集合不满足所述用户组的匹配目标,则重新获取新的用户集合,若所述用户集合满足所述用户组的匹配目标,则确定所述用户集合为匹配成功的用户组。由此可见,相比现有技术而言,采用上述方法,能够根据当前服务器负载情况动态判断确定用户集合是否满足用户组的匹配目标,从而降低服务器负载峰值,提高服务器的性能,缩短用户的等待时间。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种应用场景示意图;

图2为本发明实施例提供的一种服务器的硬件结构图;

图3为本发明实施例提供的一种降低用户组匹配过程中负载峰值的方法流程图;

图4为本发明实施例提供的一种匹配目标的分类示意图;

图5为本发明实施例提供的另一种降低用户组匹配过程中负载峰值的方法流程图;

图6为本发明实施例提供的一种降低用户组匹配过程中负载峰值的装置框图;

图7为本发明实施例提供的另一种降低用户组匹配过程中负载峰值的装置框图;

图8为本发明实施例提供的又一种降低用户组匹配过程中负载峰值的装置框图。

具体实施方式

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

本实施例提供一种降低用户组匹配过程中负载峰值的方法和装置,可以应用于服务器,服务器是指为分布在不同地域的网络游戏客户端提供集中式数据转发与逻辑处理服务的设备。

图1为本发明实施例提供的一种应用场景示意图。如图1所示,每个用户11可以通过网络与服务器10进行通信。可以理解,图1中虽然以用户为例进行说明。但实质上用户11与服务器10进行通信需要依赖于某个客户端。上述的客户端是指安装运行有智能操作系统的电子装置。其具体实例包括但并不限于电脑、笔记本电脑、平板电脑、智能手机、可穿戴式移动电子终端如智能手表、眼镜等等。

图2示出了上述服务器10的一种硬件结构图。如图2所示,服务器10包括一个或多个(图中仅示出一个)处理器101、存储器102,传输模块103以及通信总线104。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对服务器10的结构造成限定。例如,服务器10还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。

通信总线104用于服务器10中各组成部件之间的通信。

存储器102可用于存储软件程序以及模块,如本发明实施例中的降低用户组匹配过程中负载峰值的方法及装置对应的程序指令/模块,处理器101通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的降低用户组匹配过程中负载峰值的方法及装置。存储器102可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器102可进一步包括相对于处理器101远程设置的存储器,这些远程存储器可以通过网络连接至服务器10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输模块103用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输模块103包括一个网络适配器(NetworkInterfaceController,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网进行通讯。在一个实例中,传输模块103为射频(RadioFrequency,RF)模块,其用于通过无线方式与客户端进行通讯。

图3为第一实施例提供的降低用户组匹配过程中负载峰值的方法的流程图。如图3所示,该方法包括:

步骤301、获取用户组的匹配目标,其中,所述用户组的匹配目标用于表示该用户组需要满足的条件集合。

示例性的,服务器10可以在不同的条件发起匹配行为。例如,参见图1,服务器10可以根据用户发送的匹配请求发起匹配行为;或者,服务器可以定时发起匹配行为;再或者,服务器10可以根据事件触发匹配行为。本实施例对此不进行具体限定。

所以,一种实例中,步骤301可以包括以下步骤:

接收客户端发送的匹配请求,所述匹配请求与一个或多个用户相对应,且包含所述一个或多个用户请求加入的用户组标识;

根据所述用户组标识,查询预设的用户组标识和匹配目标的对应关系,获取与所述用户组的标识对应的匹配目标。

如图1所示,不同的用户分别向服务器10发起匹配请求。相应地,服务器10通过其传输模块103接收来自用户的匹配请求。匹配请求是与至少一个用户相对应的。在一个实例中,每个匹配请求仅对应于一个用户。在另一个实例中,每个匹配请求对应于两个或者更多的用户。例如,某用户可以首先邀请其好友并组队,然后一并向服务器10发起匹配请求。此时,匹配请求即可对应于两个或者更多的用户。服务器10在接收到匹配请求后,从中解析出对应的用户,将每个用户添加至用户列表内。该用户列表可以具有一定的逻辑顺序,例如可以按照匹配请求的提交时间排序。但可以理解,其逻辑上的先后顺序与用户列表自身的存储结构及存储顺序可并不一致。

该匹配请求中还包含与该匹配请求对应的一个或多个用户请求加入的用户组标识。其中,客户端可以在用户使用的终端设备的设置输入界面,客户端检测到用户触发的界面上的用户组标识后,向服务器10发送该用户组标识的匹配请求。

服务器10可以预先设置用户组与匹配目标的对应关系,通过查询该对应关系,获取与该用户组对应的匹配目标。可以理解的,一个用户组可以对应的多个匹配目标,每个匹配目标的匹配过程相同或类似,本实施例仅以用户组包含一个匹配目标为例进行说明。

在另一种实例中,步骤301可以包括以下步骤:

在一个预设的时间点到达时,查询预设的时间点与用户组标识的对应关系,获取与该时间点对应的用户组标识;

查询预设的用户组标识和匹配目标的对应关系,获取与所述用户组的标识对应的匹配目标。

再一实例中,步骤301可以包括以下步骤:

在一个预设的事件发生时,查询预设的事件与用户组标识的对应关系,获取与该事件对应的用户组标识;

查询预设的用户组标识和匹配目标的对应关系,获取与所述用户组的标识对应的匹配目标。

其中,匹配目标指用户组需要满足的条件集合。优选的,可以将用户组需要满足的条件进行拆解,一个或多个条件分别用一个数值化的信息表示,使得用户组的匹配目标模式化。参见图4,匹配目标可以包含三种类型,分别为数值型匹配目标,关系型匹配目标和组合型匹配目标;下面分别进行说明。

1、数值型匹配目标由属性信息、运算信息、目标值信息和数值关系信息表示;

其中,属性信息指示用户的属性,属性可以是用户的固有属性,例如:力量属性,智力属性,基础战斗力属性等;或者,用户的动态属性,例如:用户所处位置,用户身上具有时效性的附加属性,用户拥有某种物品,用户满足某种条件等。其中,对于用户拥有某种物品和用户满足某种条件两种属性,可在程序中通过布尔变量描述。

运算信息指示对用户集合中用户的属性执行的运算,例如,运算可以是总和,平均值,任意两个用户属性的差值的最小值等。

目标值为设定的属性目标值,目标值只允许是数值。

数值关系信息指示,对用户的属性,执行运算信息指示的运算后所得结果,需要满足的与目标值之间的关系。例如,数值关系可以是大于,小于,等于,大于等于或者小于等于等。

具体的,数值型匹配目标可以由四元组<属性,运算,目标值,数值关系>描述。例如,<智力属性,平均值,100,大于等于>描述的数值型匹配目标为:用户组需要满足的匹配要求为:用户组的每个用户的智力属性求得的平均值智力,应大于等于100。

2、关系型匹配目标由关系信息、数量信息、目标值信息和数值关系信息表示;

其中,关系信息指示用户之间应该满足的关系,关系可以是公会关系,好友关系等游戏中可能出现的各种用户之间的关系。需要说明的是,对于好友关系,可以为严格好友关系,也可以为宽松好友关系。

其中,严格好友关系要求用户组中每两个用户之间均互为好友关系。例如,用户组中包含4个用户,分别为用户1、用户2、用户3和用户4,当满足用户1为用户2、用户3和用户4的好友,且用户2为用户1、用户3和用户4的好友,且用户3为用户2、用户1和用户4的好友,用户4为用户2、用户3和用户1的好友时才构成严格好友关系。

宽松好友关系,指用户组中的每两个用户之间不需要互为好友关系,也可以是间接好友关系,间接好友关系指两个用户存在至少一个共同的好友。例如,用户组中包含4个用户,分别为用户1、用户2、用户3和用户4,其中用户1和用户2为好友关系;用户2和用户3为好友关系;用户3和用户4为好友关系;则用户1和用户3、用户4为间接好友关系。用户组中的4个用户可以构成宽松好友关系。

数量信息指示满足关系信息指示的关系的匹配对象数量。

目标值为设定的属性目标值,目标值只允许是数值。

数值关系信息指示数量信息与目标值之间的关系。例如,数值关系可以是大于,小于,等于,大于等于或者小于等于等。

具体的,数值型匹配目标可以由四元组<关系,数量,目标值,数值关系>描述,例如,<好友关系,数量,60,大于等于>描述的数值型匹配目标为:用户组需要满足的匹配要求为:用户组中,满足好友关系的用户的数量,应大于等于60。

3、组合型匹配目标由至少一个组合元素种类信息,以及与组合元素种类信息一一对应的组合元素数量信息表示。

其中,组合元素种类信息指示组合型匹配目标需要的用户的种类,组合元素数量信息与组合元素种类信息一一对应。每一对组合元素数量信息和组合元素种类信息可以用二元组<组合元素数量,组合元素种类>的一个序列描述。组合元素种类对应职责的种类,组合元素数量对应该职责在职责搭配中需满足的数量要求。程序中可通过数组方便的实现这种模式化的组合型匹配目标。

例如,网络游戏中常见的团队职责搭配需求(一个团队中每种职责的用户需要满足一定数量要求),就是一种常见的组合关系。例如,一个由40个用户组成的用户组(副本团队)的匹配目标是:需要有2个用户担任伤害吸收职责,8个用户担任治疗职责,30个用户担任伤害输出职责。则该匹配目标可通过组合型匹配目标模式描述为<2,伤害吸收><8,治疗><30,伤害输出>,在程序中可通过一个长度为3的数组实现,数组元素为{2,8,30}。

步骤302、根据所述用户组的匹配目标,在维护的用户列表中获取用户集合。

其中,用户集合包含至少一个用户,用户是指用于构建用户组的游戏内基本元素,包括但不限于用户扮演的游戏内职责,非玩家职责(Non-PlayerCharacter,简称NPC),各种用户群体等。

一种实例中,服务器10可以在上述维护的用户列表中按顺序选择用户集合。

步骤303、计算所述用户集合与所述匹配目标的匹配度。

示例性的,步骤303可以包括以下步骤:

303a、根据所述用户组匹配目标的至少一个数值化的信息,获取所述用户集合的匹配结果数值;

一个实例中,步骤303a可以通过下述步骤实现:

根据所述匹配目标的属性信息和所述用户集合中的用户标识,查询预设用户属性信息库,获取所述用户集合中每个用户与所述属性信息对应的属性,其中,所述用户属性信息库包含用户标识,以及与用户标识对应的至少一个属性;

对所述用户集合中每个用户的所述属性执行所述匹配目标的运算信息指示的运算,获得所述用户集合的匹配结果数值。

其中,服务器10可以维护用户的属性信息,例如,可以将每个用户的属性信息存储在用户属性信息库,该用户属性信息库可以采用不同形式表现,本发明实施例对此不进行限制,例如,表1为一种表格形式的用户属性信息库。

如表1所示,用户属性信息库可以包含用户标识,以及分别与用户标识对应的属性。其中用户标识可以为用户在客户端登录的用户名、账户号等唯一标识用户身份的信息,本发明实施例对此不进行具体限定。

服务器10通过用户集合中用户标识,可以查询用户属性信息库,可以获取用户属性。再对用户集合中每个用户的该属性执行匹配目标的运算信息指示的运算,获得该用户集合的匹配结果数值。例如,假设数值型匹配目标为<智力属性,平均值,100,大于等于>,用户集合中包含7个用户,服务器10查询用户属性信息库,获取用户集合中每个用户的智力属性值,假设分别为80、60、100、120、80和50;然后再计算用户集合中所有用户的智力属性值的平均值,即(80+60+100+120+80+50)/6=70;得到的平均值70即为该用户集合的匹配结果数值。

另一实例中,步骤303a可以通过下述步骤实现:

根据匹配目标的关系信息,查询预设用户关系信息库,在用户集合中,确定满足该关系信息指示的关系的用户的数量,其中,该用户关系信息库包含用户标识,以及每两个用户之间的关系信息;

将满足该关系信息指示的关系的用户的数量作为该用户集合的匹配结果数值。

其中,服务器10可以维护用户的关系信息,例如,可以将每个用户的关系信息存储在用户关系信息库。该用户关系信息库可以采用不同形式表现,本发明实施例对此不进行限制。例如,表2为一种的用户关系信息库。

表2

如表2所示,用户关系信息库可以包含每一种关系的标识,以及分别包含的用户标识,每两个用户之间的关系信息可以表示为是否属于同一种关系(例如公会)。

再如表3所示,为另一种形式的关系信息库。

表3

如表3所示,用户关系信息库可以包含每个用户标识,以及与每个用户标识存在一特定关系(如好友关系)的用户标识。

服务器10可以查询用户关系信息库,在用户集合中,确定满足该关系信息指示的关系的用户的数量,并将满足该关系信息指示的关系的用户的数量作为该用户集合的匹配结果数值。

例如,假设关系型匹配目标为<好友关系,数量,60,大于等于>。假设用户集合中包含80个用户,服务器10查询用户关系信息库,确定该80个用户中每两个用户之间是否为好友关系。然后确定满足好友关系的用户数量n作为该用户集合的匹配结果数值。再一实例中,步骤303a可以通过下述步骤实现:

根据所述用户集合中的用户标识,查询用户职责信息库,获取所述用户集合中每个用户的职责,其中,所述用户职责信息库包含用户标识,以及与用户标识对应的职责种类;

将所述用户集合中的用户,按照匹配目标的每一个组合元素种类信息指示的职责进行分类;

将每一类职责包含的用户数量组成的序列作为所述用户集合的匹配结果数值。

其中,服务器10可以维护用户的职责信息,例如,可以将每个用户的职责信息存储在用户职责信息库。该用户职责信息库可以采用不同形式表现,本发明实施例对此不进行限制。例如,表4为一种用户职责信息库。

表4

用户标识职责用户1伤害输出用户2伤害吸收用户3治疗

假设一个组合型匹配目标模式描述为<2,伤害吸收><8,治疗><30,伤害输出>,表示需要有2个用户担任伤害吸收职责,8个用户担任治疗职责,30个用户担任伤害输出职责。则该匹配目标可通过在程序中可通过一个长度为3的数组实现,数组元素为{2,8,30}。

若用户集合中有2个用户担任伤害吸收职责,7个用户担任治疗职责,25个用户担任伤害输出职责,则该用户集合可通过在程序中可通过一个长度为3的数组实现,数组元素为{2,7,25},则该用户集合的匹配结果数值为{2,7,25}。

303b、将所述匹配结果数值与所述用户组匹配目标比较,根据比较结果计算所述用户集合与所述匹配目标的匹配度。

示例性的,用户集合与匹配目标的匹配度可以通过多种计算方式来获取,只要能够反映出用户集合和匹配目标的匹配程度即可。本发明实施例对此不进行限制。

一种实例中,当匹配目标为数值型匹配目标时,或者,当匹配目标为关系型匹配目标时,步骤303b可以包括以下步骤:

将用户集合的匹配结果数值与匹配目标的目标值信息指示的目标值进行比较;

将比较的结果与匹配目标的数值关系信息指示的数值关系进行匹配;

根据匹配的结果确定所述用户集合与所述用户组匹配目标的匹配度。

例如,假设数值型匹配目标为<智力属性,平均值,100,大于等于>,用户集合的匹配结果数值为70,则将用户集合的匹配结果数值70与目标值信息指示的目标值100进行比较,则比较的结果为小于;不符合数值关系信息指示的数值关系,可根据比较的结果确定用户集合与匹配目标的匹配度,其中,匹配度可以用得分的形式表示,例如,可以通过线性对应的方法计算用户集合的得分,假设满分为100分,满分对应目标值100,则用户集合的匹配结果数值70对应的用户集合的得分即为70,当然,这只是示例性的进行说明,并不对本发明实施例构成任何限制。

另一种实例中,当匹配目标为组合型匹配目标时,步骤303b可以包括以下步骤:

将匹配结果数值中的每一种职责的数量,与对应的组合元素数量信息指示的组合元素数量,根据预设计算模型计算该用户集合与匹配目标的匹配度。

其中,预设计算模型可以为加权求和计算方法,加权求平均计算方法,平方和,平方差等多种计算模型,只要能使得计算结果反映出用户集合和匹配目标的匹配程度即可。本发明实施例对此不进行限制。

例如,一种可实现的计算模型为,将匹配目标和匹配结果数值中对应的数值分别计算差值绝对值,然后将差值绝对值相加后再求平均。

例如,一个组合型匹配目标模式描述为<2,伤害吸收><8,治疗><30,伤害输出>,该匹配目标可表示为{2,8,30}。若用户集合的匹配结果数值为{2,7,25},则根据上述预设计算模型计算用户集合的得分为:[(2-2)+(8-7)+(30-25)]/3=2。

当然,上述预设计算模型只是示例性的进行说明,并不对本发明实施例构成任何限制。

步骤304、根据所述用户集合与所述匹配目标的匹配度,以及服务器的负载情况,动态判断所述用户集合是否满足所述用户组的匹配目标,若否,则执行步骤302,若是,则执行步骤305。

一种实例中,步骤304可以包括以下步骤:

检测服务器的负载情况;

根据服务器的负载情况调整动态匹配度阈值;

若匹配度不大于动态匹配度阈值,则确定所述用户集合不满足所述用户组的匹配目标;

若匹配度大于动态匹配度阈值,则确定所述用户集合满足所述用户组的匹配目标。

其中,根据服务器的负载情况调整动态匹配度阈值,可以包括:

当服务器的负载增加时,减小动态匹配度阈值;

当服务器的负载减小时,增大动态匹配度阈值。

在服务器负载增加时,通过减小动态匹配度阈值,可使得用户集合与匹配目标的匹配度相对容易大于动态匹配度阈值,从而使得用户集合相对容易满足匹配目标,从而减少整个匹配过程的时间,降低服务器负载。

在服务器负载减小时,通过增加动态匹配度得分阈值,可使得用户集合与匹配目标的匹配度相对困难大于动态匹配度得分阈值,从而使得用户集合相对困难满足匹配目标,从而在保证服务器负载状况的同时,尽量获取能够满足匹配目标的用户集合。

步骤305、若所述用户集合满足所述用户组的匹配目标,则确定所述用户集合为匹配成功的用户组。

服务器10可以调用匹配成功处理功能,例如,在副本匹配系统中将用户集合的用户传送到指定副本)。当然,服务器10还可以通过传输模块103向用户集合中的用户发送匹配成功信息。

本发明实施例提供一种降低用户组匹配过程中负载峰值的方法,首先,获取用户组的匹配目标;再根据用户组的匹配目标,在维护的用户列表中获取用户集合;然后计算用户集合与匹配目标的匹配度;最后根据用户集合与匹配目标的匹配度,以及服务器的负载情况,动态判断所述用户集合是否满足所述用户组的匹配目标;若所述用户集合不满足所述用户组的匹配目标,则重新获取新的用户集合,若所述用户集合满足所述用户组的匹配目标,则确定所述用户集合为匹配成功的用户组。由此可见,相比现有技术而言,采用上述方法,能够根据当前服务器负载情况动态判断确定用户集合是否满足用户组的匹配目标,从而降低服务器负载峰值,提高服务器的性能,缩短用户的等待时间。

参见图5,为第二实施例提供的降低用户组匹配过程中负载峰值的方法的流程图。第二实施例与实施例一的原理相同,与第一实施例不同的是,当步骤301通过下述步骤实现时,第二实施例还包括步骤506、根据用户集合与匹配目标的匹配度,以及该一个或多个用户的等待时间,确定用户集合是否满足所述用户组的匹配目标,若否,则执行步骤302,若是,则执行步骤305。

3011:接收客户端发送的匹配请求,所述匹配请求与一个或多个用户相对应,且包含所述一个或多个用户请求加入的用户组标识;

3012:根据所述用户组标识,查询预设的用户组标识和匹配目标的对应关系,获取与所述用户组的标识对应的匹配目标。

其中,该一个或多个用户可以为客户端发送的匹配请求对应的一个和多个用户。

其中,步骤506可以包括以下步骤:

检测该一个或多个用户的等待时间;

根据该一个或多个用户的等待时间调整动态匹配度阈值;

若所述匹配度不大于所述动态匹配度阈值,则确定所述用户集合不满足所述用户组的匹配目标;

若所述匹配度大于所述动态匹配度阈值,则确定所述用户集合满足所述用户组的匹配目标。

其中,根据所述该一个或多个用户的等待时间调整动态匹配度阈值,可以包括:

若该一个或多个用户的等待时间大于预设时长,则减小所述动态匹配度阈值;

若该一个用户或多个用户的等待时间不大于预设时长,则增大所述动态匹配度阈值。

在该一个或多个用户的等待时间大于预设时长,说明用户等待时间过长,为提高用户体验,可通过减小动态匹配度阈值,可使得用户集合与匹配目标的匹配度相对容易大于动态匹配度阈值,从而使得用户集合相对容易满足匹配目标,从而减少整个匹配过程的时间,减小用户等待时间。

在该一个或多个用户的等待时间小于等于预设时长,说明用户等待时间在合理范围内,可通过增加动态匹配度阈值,可使得用户集合与匹配目标的匹配度相对困难大于动态匹配度阈值,从而使得用户集合相对困难满足匹配目标,从而在用户等待时间在合理范围内的同时,尽量获取能够满足匹配目标的用户集合。

本发明实施例提供一种降低用户组匹配过程中负载峰值的方法,能够根据用户的等待时间动态判断确定用户集合是否满足用户组的匹配目标,缩短用户的等待时间,进而降低服务器负载峰值,提高服务器的性能。

图6为本发明实施例提供的一种降低用户组匹配过程中负载峰值的装置6。参见图6,包括:

匹配目标获取单元61,用于获取用户组的匹配目标,其中,所述用户组的匹配目标用于表示该用户组需要满足的条件集合;

用户集合获取单元62,用于根据所述用户组的匹配目标,在维护的用户列表中获取用户集合;

计算单元63,用于计算所述用户集合与所述匹配目标的匹配度;

判断单元64,用于根据所述用户集合与所述匹配目标的匹配度,以及服务器的负载情况,动态判断所述用户集合是否满足所述用户组的匹配目标;

所述用户集合获取单元62还用于,若所述用户集合不满足所述用户组的匹配目标,则重新获取新的用户集合;

确定单元65,用于若所述用户集合满足所述用户组的匹配目标,则确定所述用户集合为匹配成功的用户组。

其中,在一种实例中,参见图7,匹配目标获取单元61包括:

接收模块611,用于接收客户端发送的匹配请求,所述匹配请求与一个或多个用户相对应,且包含所述一个或多个用户请求加入的用户组标识;

查询模块612,用于根据所述用户组标识,查询预设的用户组标识和匹配目标的对应关系,获取与所述用户组的标识对应的匹配目标。

在另一种实例中,参见图8,匹配目标获取单元61包括用户组查询模块613和匹配目标查询模块614,其中,

用户组查询模块613用于,在一个预设的时间点到达时,查询预设的时间点与用户组标识的对应关系,获取与该时间点对应的用户组标识;

匹配目标查询模块614用于,查询预设的用户组标识和匹配目标的对应关系,获取与所述用户组的标识对应的匹配目标;

或者,

用户组查询模块613用于,在一个预设的事件发生时,查询预设的事件与用户组标识的对应关系,获取与该事件对应的用户组标识;

匹配目标查询模块614用于,查询预设的用户组标识和匹配目标的对应关系,获取与所述用户组的标识对应的匹配目标。

在一种实例中,参见图7或图8,判断单元64包括:

检测模块641,用于检测所述服务器的负载情况;

调整模块642,用于根据所述服务器的负载情况调整动态匹配度阈值;

确定模块643,用于在所述匹配度不大于所述动态匹配度阈值时,确定所述用户集合不满足所述用户组的匹配目标;在所述匹配度大于所述动态匹配度阈值时,确定所述用户集合满足所述用户组的匹配目标。

其中,调整模块642具体用于:

当所述服务器的负载增加时,减小所述动态匹配度阈值;

当所述服务器的负载减小时,增大所述动态匹配度阈值。

在另一种实例中,判断单元64还用于:根据所述用户集合与所述匹配目标的匹配度,以及该一个或多个用户的等待时间,确定所述用户集合是否满足所述用户组的匹配目标。

具体的,

检测模块641还用于,检测该一个或多个用户的等待时间;

调整模块642还用于,根据该一个或多个用户的等待时间获取动态匹配度阈值;

确定模块643还用于,在所述匹配度不大于所述动态匹配度阈值时,确定所述用户集合不满足所述用户组的匹配目标;在所述匹配度大于所述动态匹配度阈值时,确定所述用户集合满足所述用户组的匹配目标。

进一步的,调整模块642还用于:若该一个或多个用户的等待时间大于预设时长,则减小所述动态匹配度阈值;

若该一个用户或多个用户的等待时间不大于预设时长,则增大所述动态匹配度阈值。

进一步的,所述用户组匹配目标由至少一个数值化的信息表示,参见图7或图8,计算单元63包括:

获取模块631,用于根据所述用户组匹配目标的至少一个数值化的信息,获取所述用户集合的匹配结果数值;

计算模块632,用于将所述匹配结果数值与所述用户组匹配目标比较,根据比较结果计算所述用户集合与所述匹配目标的匹配度。

其中,所述匹配目标可以包含三种类型,分别为数值型匹配目标,关系型匹配目标和组合型匹配目标;其中,

数值型匹配目标由属性信息、运算信息、目标值信息和数值关系信息表示;

关系型匹配目标由关系信息、数量信息、目标值信息和数值关系信息表示;

组合型匹配目标由至少一个组合元素种类信息,以及与所述组合元素种类信息一一对应的组合元素数量信息表示。

对于获取模块631:

在一种实例中,当用户组的匹配目标为数值型匹配目标时,获取模块631用于:

根据所述匹配目标的属性信息和所述用户集合中的用户标识,查询预设用户属性信息库,获取所述用户集合中每个用户与所述属性信息对应的属性,其中,所述用户属性信息库包含用户标识,以及与用户标识对应的至少一个属性;

对所述用户集合中每个用户的所述属性执行所述匹配目标的运算信息指示的运算,获得所述用户集合的匹配结果数值。

在另一种实例中,当所述用户组的匹配目标为关系型匹配目标时,获取模块631用于:

根据所述匹配目标的关系信息,查询预设用户关系信息库,在所述用户集合中,确定满足所述关系信息指示的关系的用户的数量,其中,所述预设用户关系信息库包含用户标识,以及每两个用户之间的关系信息;

将所述满足所述关系信息指示的关系的用户的数量作为所述用户集合的匹配结果数值。

再一实例中,当所述用户组的匹配目标为组合型匹配目标时,获取模块631用于:

根据所述用户集合中的用户标识,查询用户职责信息库,获取所述用户集合中每个用户的职责,其中,所述用户职责信息库包含用户标识,以及与用户标识对应的职责种类;

将所述用户集合中的用户,按照匹配目标的每一个组合元素种类信息指示的职责进行分类;

将每一类职责包含的用户数量组成的序列作为所述用户集合的匹配结果数值。

对于计算模块632:

在一实例中,当用户组的匹配目标为数值型匹配目标或者关系型匹配目标时,计算模块632用于:

将所述用户集合的匹配结果数值与所述匹配目标的目标值信息指示的目标值进行比较;

将比较的结果与所述匹配目标的数值关系信息指示的数值关系进行匹配;

根据匹配的结果确定所述用户集合与所述用户组匹配目标的匹配度。

在另一实例中,当所述用户组的匹配目标为组合型匹配目标时,计算模块632用于:

将所述匹配结果数值中的每一种职责的数量,与对应的所述组合元素数量信息指示的组合元素数量,根据预设计算模型计算所述用户集合与所述用户组匹配目标的匹配度。

本发明实施例提供一种降低用户组匹配过程中负载峰值的装置6,首先,获取用户组的匹配目标;再根据用户组的匹配目标,在维护的用户列表中获取用户集合;然后计算用户集合与匹配目标的匹配度;最后根据用户集合与匹配目标的匹配度,以及服务器的负载情况,动态判断所述用户集合是否满足所述用户组的匹配目标;若所述用户集合不满足所述用户组的匹配目标,则重新获取新的用户集合,若所述用户集合满足所述用户组的匹配目标,则确定所述用户集合为匹配成功的用户组。由此可见,相比现有技术而言,采用上述方法,能够根据当前服务器负载情况动态判断确定用户集合是否满足用户组的匹配目标,从而降低服务器负载峰值,提高服务器的性能,缩短用户的等待时间。

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

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

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(RandomAccessMemory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号