请求处理方法、装置、电子设备及计算机可读存储介质与流程

文档序号:15518018发布日期:2018-09-25 18:48阅读:156来源:国知局

本发明涉及计算机技术领域,特别是涉及一种请求处理方法、装置、电子设备及计算机可读存储介质。



背景技术:

数据库(database)是按照数据结构来组织、存储和管理数据的仓库,随着信息化技术的不断发展,数据库技术在各个领域的应用越来越广泛。为了避免昂贵的数据管理费用和聘请专业数据管理人员的费用,有数据管理需求的企业可以将自身的数据管理任务交由数据库服务企业去完成,即数据库服务企业可以向上述有数据管理需求的企业提供数据库服务。

在现有技术中,上述有数据管理需求的企业可以通过终端向数据库服务企业设置的数据库服务器发送数据库访问请求,以达到对数据进行增加、删除、查看和修改的目的。例如,上述有数据管理需求的企业将数据存储在数据库服务企业设置的redis数据库(一种开源的key-value数据库)中,当其需要查看redis数据库中的数据时,可以向该redis数据库对应的数据库服务器发送数据查看请求。

对于数据库服务企业而言,其所服务的每一个用户(如上述有数据管理需求的企业)的服务等级、服务收费标准等是不同的,所以针对不同的用户有不同的qps(querypersecond,每秒查询率)限制需求。但对于现有技术的上述数据库服务器而言,当其接收到数据库访问请求时,会直接处理该数据库访问请求,无法满足上述针对不同用户有不同qps限制的需求。



技术实现要素:

本发明实施例的目的在于提供一种请求处理方法、装置、电子设备及计算机可读存储介质,以满足数据库服务企业针对其所服务的不同用户有不同qps限制的需求。具体技术方案如下:

为达上述目的,第一方面,本发明实施例提供了一种请求处理方法,包括:

接收目标数据库访问请求;

判断第一计数值是否小于1,其中,第一计数值为针对该目标数据库访问请求对应的目标用户所设置的计数值,第一计数值每间隔第一预设时长被设置为第一预设数值;

如果不小于1,处理该目标数据库访问请求;

更新第一计数值为:当前第一计数值与1的差值。

可选的,在第一计数值小于1的情况下,上述方法还包括:

间隔第二预设时长,返回执行上述判断第一计数值是否小于1的步骤。

可选的,在第一计数值小于1的情况下,上述方法还包括:

统计当前时刻前第三预设时长内,判断出第一计数值小于1的总次数;

判断该总次数是否达到第一预设阈值;

如果达到第一预设阈值,更新第一预设数值为:当前第一预设数值与第二预设数值的和值。

可选的,在上述更新第一预设数值为:当前第一预设数值与第二预设数值的和值的步骤之前,上述方法还包括:

判断当前第一预设数值与第二预设数值的和值是否小于第二预设阈值;

如果小于第二预设阈值,执行上述更新第一预设数值为:当前第一预设数值与第二预设数值的和值的步骤。

可选的,在该总次数达到第一预设阈值的情况下,上述方法还包括:

生成报警提示信息,并将所生成的报警提示信息反馈给上述目标数据库访问请求所对应的终端。

可选的,在第一计数值小于1的情况下,上述方法还包括:

更新针对目标用户所设置的第二计数值为:当前第二计数值与1的和值;

判断更新后的第二计数值是否达到第三预设阈值;

如果达到第三预设阈值,更新第一预设数值为:当前第一预设数值与第二预设数值的和值。

第二方面,本发明实施例提供了一种请求处理装置,包括:

接收模块,用于接收目标数据库访问请求;

第一判断模块,用于判断第一计数值是否小于1,其中,第一计数值为针对该目标数据库访问请求对应的目标用户所设置的计数值,第一计数值每间隔第一预设时长被设置为第一预设数值;

处理模块,用于在第一判断模块的判断结果为否的情况下,处理该目标数据库访问请求;

第一更新模块,用于更新第一计数值为:当前第一计数值与1的差值。

可选的,上述第一判断模块,还用于在第一计数值小于1的情况下,间隔第二预设时长,返回执行判断第一计数值是否小于1的步骤。

可选的,上述装置还包括:

统计模块,用于在第一判断模块的判断结果为是的情况下,统计当前时刻前第三预设时长内,判断出第一计数值小于1的总次数;

第二判断模块,用于判断该总次数是否达到第一预设阈值;

第二更新模块,用于在第二判断模块的判断结果为是的情况下,更新第一预设数值为:当前第一预设数值与第二预设数值的和值。

可选的,上述装置还包括:

第三判断模块,用于在第二判断模块的判断结果为是的情况下,判断当前第一预设数值与第二预设数值的和值是否小于第二预设阈值;

相应的,上述第二更新模块,具体用于在第三判断模块的判断结果为是的情况下,更新第一预设数值为:当前第一预设数值与第二预设数值的和值。

可选的,上述装置还包括:

反馈模块,用于在第二判断模块的判断结果为是的情况下,生成报警提示信息,并将报警提示信息反馈给目标数据库访问请求所对应的终端。

可选的,上述装置还包括:

第三更新模块,用于在第一判断模块的判断结果为是的情况下,更新针对目标用户所设置的第二计数值为:当前第二计数值与1的和值;

第四判断模块,用于判断更新后的第二计数值是否达到第三预设阈值;

第四更新模块,用于在第四判断模块的判断结果为是的情况下,更新第一预设数值为:当前第一预设数值与第二预设数值的和值。

面,本发明实施例提供了一种电子设备,包括处理器和存储器,其中;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一请求处理方法所述的方法步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时实现上述任一请求处理方法所述的方法步骤。

第五方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一请求处理方法所述的方法步骤。

第六方面,本发明实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述任一请求处理方法所述的方法步骤。

由以上可知,本发明实施例提供的方案中,在接收到目标数据库访问请求后,首先判断第一计数值是否小于1,如果不小于1,处理该目标数据库访问请求,并更新第一计数值为:当前第一计数值与1的差值。其中,第一计数值为针对该目标数据库访问请求对应的目标用户所设置的计数值,第一计数值每间隔第一预设时长被设置为第一预设数值。与现有技术相比,本发明实施例提供的方案中,数据库服务器只有在第一计数值不小于1的情况下,才会处理上述目标数据库访问请求,又由于第一计数值每间隔第一预设时长被设置为第一预设数值,且每处理一个目标用户的数据库访问请求,会更新第一计数值为:当前第一计数值与1的差值,故数据库服务器处理目标用户的数据库访问请求的平均速度为:第一预设数值与第一预设时长的比值,满足了数据库服务企业针对其所服务的不同用户设置不同qps限制的需求。

附图说明

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

图1为本发明一实施例提供的一种请求处理方法的流程示意图;

图2为本发明另一实施例提供的一种请求处理方法的流程示意图;

图3为本发明又一实施例提供的一种请求处理方法的流程示意图;

图4为本发明一实施例提供的一种请求处理装置的结构示意图;

图5为本发明另一实施例提供的一种请求处理装置的结构示意图;

图6为本发明又一实施例提供的一种请求处理装置的结构示意图;

图7为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

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

下面首先针对本申请文件涉及的技术术语进行简单介绍。

数据库访问请求,如背景技术所述,有数据管理需求的企业将自身的数据存储在数据库服务企业提供的设备中,所以有数据管理需求的企业要访问其自身的数据时,首先需要向数据库服务企业的数据库服务器发送数据访问请求,才能访问到其自身的数据。

数据访问请求可以是数据读请求,数据库服务器接收到数据读请求后,可以按照数据读请求,将数据读请求所对应的数据推送给发送数据读请求的终端,使得终端使用者可以通过终端查看数据读请求对应的数据。例如,终端a向数据库服务器发送针对数据x的数据读请求,则数据库服务器可以查找到数据x,并将数据x推送给终端a。

数据访问请求也可以是数据写请求,数据库服务器接收到数据写请求后,可以按照数据写请求,执行相应的数据写操作,如数据的增加、删除、修改等。示例性的,终端b向数据库服务器发送删除数据y的数据写请求,则数据库服务器可以查找到数据y,并将数据y从数据库中删除。

qps,中文称为每秒查询率,在本申请文件中可以理解为:针对每一数据库服务企业的每一用户,数据库服务器每秒处理该用户对应的数据库访问请求的数量。例如,针对用户x,数据库服务器每秒处理用户x对应的数据库访问请求的数量为m,则在该秒内该用户对应的qps为m。

为了解决现有技术无法满足数据库服务企业针对其所服务的不同用户设置不同qps限制的需求的问题,本发明实施例提供了一种请求处理方法、装置、电子设备及存储介质。

下面首先对本发明实施例所提供的一种请求处理方法进行详细介绍。

首先需要说明的是,本发明实施例所提供的一种请求处理方法,可以应用于数据库服务设备,即上述数据库服务器。一种情况下,该数据库服务器即为用于存储数据的设备。另一种情况下,该数据库服务器中可以为数据库集群系统中的控制服务器,或称代理服务器(proxy),数据库服务器自身并不存储数据,但是其可以与存储数据的数据库节点相通信;例如,上述数据库为redis数据库,数据库集群系统包括控制服务器以及多个redis节点,控制服务器与每个redis节点相通信,控制服务器可以用于接收数据库访问请求,并可以将所接收的数据库访问请求转发给对应的redis节点。

如图1所示,本发明实施例提供的一种请求处理方法,包括:

s101:接收目标数据库访问请求。

可以理解的是,此处目标数据库访问请求的发送方为数据库服务器相对应的终端,显然的,该终端属于前述有数据管理需求的企业,并且,数据库服务器所接收到的每一个数据库访问请求都可以是本发明实施例中所称的目标数据库访问请求。另外,如前所述,此处的目标数据库访问请求可以是数据库读请求,也可以是数据库写请求,甚至于是其它类别的请求,本发明实施例在此并不限定目标数据库访问请求的具体类型。

s102:判断第一计数值是否小于1;其中,第一计数值为针对该目标数据库访问请求对应的目标用户所设置的计数值,第一计数值每间隔第一预设时长被设置为第一预设数值。

需要说明的是,目标用户属于数据库服务企业所服务的对象,一种情况下,数据库服务企业所服务的对象为个人,则该目标用户即为发送该目标数据库访问请求的终端使用者;另一种情况下,数据库服务企业所服务的对象为企业、机构等,则该目标用户为企业机构等,此情况下目标用户并不等同于发送该目标数据库访问请求的终端使用者,例如,该目标用户为公司a,公司a旗下的员工a通过终端向数据库服务器发送数据库访问请求。

本发明实施例中,目标用户被配置的第一计数值是一个变量,第一计数值每间隔第一预设时长就会被设置为第一预设数值,其中,该第一预设数值为大于1的正数,另外,该第一预设时长以及第一预设数值可以根据实际情况设置,本发明实施例并不限定该第一预设时长以及第一预设数值的具体数值,例如,设置第一预设数值为50,第一预设时长为1s(秒)。

在实际应用中,可以依据目标用户所对应的服务等级和/或收费设置上述第一预设时长以及第一预设数值,目标用户所对应的服务等级和/或收费越高,设置第一预设时长越短和/或第一预设数值越大。例如,目标用户a所对应的服务等级高于目标用户b,则可以将目标用户b对应的第一预设数值设置为50、第一预设时长设置为1s,将目标用户a对应的第一预设数值设置为80、第一预设时长设置为1s。

如果步骤s102的判断结果为否,执行步骤s103:处理该目标数据库访问请求。

在本发明实施例中,只有在步骤s102的判断结果为否的情况下,数据库服务器才会去处理该目标数据库访问请求,而在步骤s102的判断结果为是的情况下,数据库服务器不会处理该目标数据库访问请求,例如,数据库服务器可以拒绝该目标数据库访问请求。

可以理解,在步骤s102的判断结果为是的情况下,数据库服务器如果直接拒绝目标数据库访问请求,即表明该目标数据库访问请求得不到响应,本发明实施例中,为了使得每一个数据库访问请求都能被数据库服务器所处理,即每一个数据库访问请求都能得到响应,作为本发明实施例的一种可选实现方式,在步骤s102的判断结果为是的情况下,上述方法还可以包括:

间隔第二预设时长,返回执行上述判断第一计数值是否小于1(s102)的步骤。

该第二预设时长的具体大小可以基于实际需求设定,本发明实施例并不限定第二预设时长的具体大小。

步骤s102的判断结果为是,表明当前第一计数值小于1,但是第一计数值每间隔第一预设时长会被设置为第一预设数值,所以当前时刻后第二预设时长时的第一计数值不一定小于1,如果该时刻第一计数值不小于1,则在该时刻数据库服务器可以处理该目标数据库访问请求。

示例性的,假设在第一时刻时,第一计数值为0,则在第一时刻判定出步骤s102的判断结果为是;预设第二预设时长为1s,称第一时刻后第1s为第二时刻,在第一时刻至第二时刻之间的某时刻,第一计数值被重置为50。所以数据库服务器在第二时刻时再次执行步骤s102,此时步骤s102的判断很可能结果为否,则该目标数据访问请求可以被数据库服务器所处理。

可以理解,在此实现方式中,虽然有的数据库访问请求不能被及时处理,但是可以保证每一个数据库访问请求都可以被数据库服务器所处理。

如前所述,一种情况下,该数据库服务器为用于存储数据的设备,此情况下,数据库服务器处理该目标数据库访问请求可以理解为:数据库服务器按照目标数据库访问请求执行相应的数据库操作,例如,该目标数据库访问请求为针对于数据a的写请求,则数据库服务器执行将数据a写入数据库的操作。

另一种情况下,该数据库服务器中可以为数据库集群系统中的控制服务器,数据库集群系统包括控制服务器以及多个用于存储数据的数据库节点,此情况下,数据库服务器处理该目标数据库访问请求可以理解为:数据库服务器将所接收的目标数据库访问请求转发给对应的数据库节点。例如,控制服务器通信连接有10个redis节点,目标数据库访问请求为查看数据a的数据查看请求,则数据库服务器处理目标数据库访问请求即为:查找出数据a所存储的redis节点,并将目标数据库访问请求转发给所查找到的redis节点。

s104:更新第一计数值为:当前第一计数值与1的差值。

在本发明实施例中,第一计数值除了每间隔第一预设时长被设置为第一预设数值外,数据库服务器处理过目标用户对应的一个数据库访问请求后还会更新第一计数值为:当前第一计数值与1的差值。

例如,当前第一计数值为45,数据库服务器在执行了步骤s103之后,将第一计数值更新为44。

在此需要说明的是,在实际使用中,本发明实施例中的第一计数值可以为预设令牌桶中的令牌数量。在此情况下,数据库服务企业为其所服务的每个用户均设置一个令牌桶,令牌桶中的令牌数量即为上述第一计数值。

相应的,上述第一预设数值即为针对目标用户所预设的目标令牌桶中最多可容纳的令牌数量,并且,此时的步骤s104可以为:

更新针对目标用户所预设的目标令牌桶中的令牌数量为:当前目标令牌桶中的令牌数量与1的差值。

可以理解,在本发明实施例中,第一计数值每间隔第一预设时长被设置为第一预设数值,即数据库服务器以第一预设时长为一个周期,将第一计数值周期性地重置为第一预设数值。又由于数据库服务器每处理一个目标用户所对应的数据库访问请求,就会更新第一计数值为:当前第一计数值与1的差值,所以针对目标用户所对应的数据库访问请求,数据库服务器在上述一个周期内最多可以处理第一预设数值个,从而达到qps限制的目的。

可与理解,在本发明实施例中,目标用户所对应的qps值即为上述第一预设数值与第一预设时长的比值。并且在第一预设时长相同的情况下,第一预设数值越大,qps值越高;同样的,在第一预设数值相同的情况下,第一预设时长越小,qps值越高。

示例性的,对于目标用户,第一预设数值为40,第一预设时长为1s。则在一个周期内,数据服务器最多可以处理40个的目标用户对应的数据库访问请求。

由上可知,与现有技术相比,本实施例提供的方案中,数据库服务器只有在第一计数值不小于1的情况下,才会处理上述目标数据库访问请求,又由于第一计数值每间隔第一预设时长被设置为第一预设数值,且每处理一个目标用户的数据库访问请求,会更新第一计数值为:当前第一计数值与1的差值,故数据库服务器处理目标用户的数据库访问请求的平均速度为:第一预设数值与第一预设时长的比值,满足了数据库服务企业针对其所服务的不同用户设置不同qps限制的需求。

在本发明实施例中,在图1所示方法实施例的基础上,如图2所示,在步骤s102的判断结果为是的情况下,上述方法还可以包括:

s105:统计当前时刻前第三预设时长内,判断出第一计数值小于1的总次数。

同样的,第三预设时长的具体大小可以根据实际情况设定,本发明实施例并不限定第三预设时长的具体大小。

针对步骤s105,示例性的,数据库服务器在每次判定出第一计数值小于1时,可以做一次记录;假设第三预设时长为1小时,则数据库服务器在执行步骤s105时,统计发现在当前时刻的前1小时内,上述记录的总次数为100次,即当前时刻前第三预设时长内,判断出第一计数值小于1的总次数为100次。

s106:判断该总次数是否达到第一预设阈值。

同样的,第一预设阈值的具体大小可以根据实际情况设定,本发明实施例并不限定第一预设阈值的具体大小。

如果步骤s106的判断结果为是,执行步骤s107:更新第一预设数值为:当前第一预设数值与第二预设数值的和值。

可以理解,在本发明实施例中,第一预设数值也并非是固定值,在步骤s106的判断结果为是的情况下,可以更新第一预设数值为:当前第一预设数值与第二预设数值的和值。当然,第二预设数值的具体大小可以根据实际情况设定,本发明实施例并不限定第二预设数值的具体大小。

针对步骤s106和步骤s107,示例性的,假设第一预设阈值为40,步骤s105所统计出的总次数为50次,当前的第一预设数值为50,第二预设数值为10。显然的,步骤s106的判断结果为是,此时需要执行步骤s107,即将第一预设数值更新为50与10的和值60。

在第一预设时长不变的情况下,第一预设数值增加,则增加了目标用户对应的qps值,如前所述,目标用户对应的qps值是与目标用户的服务等级、收费所对应的,所以在实际应用过程中,执行完步骤s107后,数据库服务器还可以针对当前的qps值生成新的收费订单,并按照新的订单计费。当然,具体的生成收费订单与计费的方式可以参照现有技术,本发明实施例在此不做详细介绍。

与图1所示方法实施例相比,本发明实施例中,可以根据实际情况自动增加目标用户的qps值,可以保证目标用户所对应的数据库访问请求都可以被数据库服务器及时处理,同时保证目标用户的qps值不会被设置得过高。

作为本发明实施例的一种可选实现方式,在上述步骤s106的判断结果为是的情况下,数据库服务器除了执行步骤s107外,上述方法还可以包括下述步骤s1:

步骤s1:生成报警提示信息,并将所生成的报警提示信息反馈给上述目标数据库访问请求所对应的终端。

该报警提示信息为用以提示目标用户当前的qps过低,无法满足目标用户的实际使用需求的信息,本发明实施例并不限定该报警提示信息的形式。可以理解,报警提示信息反馈给上述目标数据库访问请求所对应的终端后,该终端可以将报警提示信息显示到自身的显示界面上,或者语音播报出来,以使得目标用户可以及时掌握当前qps值过低的问题。

例如,生成的报警提示信息中携带有当前的qps值,即第一预设数值与第一预设时长的比值,具体如:当前qps值为50,则上述目标数据库访问请求所对应的终端在接收到报警提示信息后,可以在自身的显示界面上显示提示信息“警报:当前qps值为50,qps值过低”。

需要说明的是,在实际应用中,在上述步骤s106的判断结果为是的情况下,数据库服务器可以仅执行步骤s1,而不执行步骤s107。在此情况下,目标用户在得知当前qps值过低的问题时,可以通过终端向数据库服务器发送更改当前qps的请求。例如,该更改qps的请求可以是:在保持第一预设不变的情况下,将当前的第一预设数值增大为当前的2倍。

如前所述,目标用户对应的qps值被自动升高后,目标用户对应的收费也会相应升高,本发明实施例中,为了保证qps值在目标用户可接受的范围内进行自动提高,作为本发明实施例的一种可选实现方式,在上述更新第一预设数值为:当前第一预设数值与第二预设数值的和值(s107)的步骤之前,上述方法还可以包括:

判断当前第一预设数值与第二预设数值的和值是否小于第二预设阈值;

如果小于第二预设阈值,执行上述更新第一预设数值为:当前第一预设数值与第二预设数值的和值的步骤。

即在本实施例中,在图2所示方法实施例的基础上,如图3所示,上述请求处理方法包括:

s201:接收目标数据库访问请求。

s202:判断第一计数值是否小于1;其中,第一计数值为针对该目标数据库访问请求对应的目标用户所设置的计数值,第一计数值每间隔第一预设时长被设置为第一预设数值。

如果步骤s202的判断结果为否,执行步骤s203:处理该目标数据库访问请求。

s204:更新第一计数值为:当前第一计数值与1的差值。

如果步骤s202的判断结果为是,执行s205:统计当前时刻前第三预设时长内,判断出第一计数值小于1的总次数。

s206:判断该总次数是否达到第一预设阈值。

如果步骤s206的判断结果为是,执行步骤s207:判断当前第一预设数值与第二预设数值的和值是否小于第二预设阈值。

同样的,第二预设阈值的具体大小可以根据实际情况设定,本发明实施例并不限定第二预设阈值的具体大小。在实际使用中,该第二预设阈值可以由目标用户预先设定,例如,目标用户预先通过终端设定该第二预设阈值为100,并将所设定的第二预设阈值发送给数据库服务器。

如果步骤s207的判断结果为是,执行步骤s208:更新第一预设数值为:当前第一预设数值与第二预设数值的和值。

当然,在步骤s207的判断结果为否的情况下,数据库服务器不会执行步骤s208。

应该说明的是,图3所示方法实施例中的步骤s201~s206和s208分别对应与图2所示方法实施例中的s101~s106和s107相同,步骤s201~s206和s208的解释说明和具体实现可以参照图2所示方法实施例,本实施例在此不再赘述。

针对步骤s207和s208,示例性的,第二预设阈值为80,第二预设数值为20,假设当前第一预设数值为50,则在执行步骤s207时,当前第一预设数值与第二预设数值的和值为70,由于该和值70小于第二预设阈值80,则数据库服务器执行步骤s208,即更新第一预设数值为:当前第一预设数值与第二预设数值的和值70;假设当前第一预设数值为70,则在执行步骤s207时,当前第一预设数值与第二预设数值的和值为90,由于该和值90不小于第二预设阈值80,则数据库服务器不会执行步骤s208。

图2和图3所示方法实施例中所描述的是如何增加目标用户的qps值的实现方式;相对应的,有些情况下,目标用户所对应的被初始设置的qps值可能过大,所以为了避免这类情况,本发明实施例中,数据库服务器除了每间隔第一预设时长将第一计数值重置为第一预设数值外,还可以在每次重置第一计数值时,判断当前的第一计数值是否大于等于1,在连续判断出重置第一计数值时第一计数值大于等于1的次数大于预定次数时,可以更新第一预设数值为:当前第一预设数值与数值1的差值。可以理解,此时目标用户的qps值减小。

对此,示例性的,上述预定次数为200次,当前的第一预设数值为45,第一预设时长为1s,则此时目标客户对应的qps值为45,数据库服务器在每次重置第一计数值时,均会执行判断当前的第一计数值是否大于等于1的步骤,数据库服务器在某次重置第一计数值时,判定出当前的第一计数值大于等于1,并且发现已连续出现200次重置第一计数值时,对应时刻的第一计数值大于等于1,则此时更新第一预设数值为:当前第一预设数值与数值1的差值,即更新第一预设数值为44。

作为与图2所示方法实施例并列的一种实施例,本发明实施例中,在图1所示方法实施例的基础上,在上述步骤s102的判断结果为是的情况下,上述方法还可以包括下述步骤a1~a3:

步骤a1:更新针对目标用户所设置的第二计数值为:当前第二计数值与1的和值。

可以理解,在本发明实施例中,针对目标用户除配置有一个第一计数值外,还配置有一个第二计数值,通常情况下,该第二计数值得初始值为0。数据库服务器在每次判断出第一计数值小于1时,可以更新该第二计数值为:当前第二计数值与1的和值。

示例性的,该当前该第二计数值为0,数据库服务器执行步骤s102的结果为是时,更新该第二计数值为:当前第二计数值与1的和值,即更新第二计数值为1。

步骤a2:判断更新后的第二计数值是否达到第三预设阈值。

同样的,第三预设阈值的具体大小可以根据实际情况设定,本发明实施例并不限定第三预设阈值的具体大小。

如果步骤a2的判断结果为是,则执行步骤a3:更新第一预设数值为:当前第一预设数值与第二预设数值的和值。

可以理解,在本发明实施例中,第一预设数值并非是固定值,在步骤a2的判断结果为是的情况下,可以更新第一预设数值为:当前第一预设数值与第二预设数值的和值。显然的,第二预设数值的具体大小可以根据实际情况设定,本发明实施例并不限定第二预设数值的具体大小。

针对步骤a2和a3,示例性的,假设第三预设阈值为40,步骤a1所更新得到的第二计数值为40,当前的第一预设数值为50,第二预设数值为10。显然的,步骤a2的判断结果为是,此时需要执行步骤a3,即将第一预设数值更新为50与10的和值60。

可以理解,本发明实施例中,步骤a3与前述图2所示方法实施例中的步骤s107完全相同,步骤a3的相关内容和解释说明可以参照述图2所示方法实施例,本发明实施例在此不做详细介绍。

另外,作为本发明实施例的一种可选实现方式,在上述步骤a2的判断结果为是的情况下,数据库服务器除了执行步骤a3外,上述方法还可以包括下述步骤s2:

步骤s2:生成报警提示信息,并将所生成的报警提示信息反馈给上述目标数据库访问请求所对应的终端。

再有,作为本发明实施例的一种可选实现方式,在上述更新第一预设数值为:当前第一预设数值与第二预设数值的和值(a3)的步骤之前,上述方法还可以包括步骤b:

判断当前第一预设数值与第二预设数值的和值是否小于第二预设阈值;

如果步骤b的判断结果为是,执行上述更新第一预设数值为:当前第一预设数值与第二预设数值的和值(a3)的步骤。

同样可以理解,本发明实施例中,步骤s2和步骤b分别与前述图2所示方法实施例中的步骤s1以及图3所示方法实施例中的步骤s207完全相同,步骤s2和步骤b的相关内容和解释说明可以参照述图2和图3所示方法实施例,本发明实施例在此不做详细介绍。

下面,再通过一个具体实例来对本发明进行简单介绍。

针对目标客户a,预先设置有一个令牌桶,该令牌桶最多可放置40个令牌,数据库服务器每间隔1秒,将令牌桶中的令牌设置为40个,即目标客户a当前的qps值为40。另外,数据库服务器为数据库集群系统中的控制服务器,控制服务器与多个redis节点相通信,上述第三预设时长为10分钟,第一预设阈值为40,第一预设数值为50,第二预设数值为10,第二预设阈值为80。

假设在p时刻,数据库服务器接收到一目标数据库访问请求,其首先判断第一计数值是否小于1,假设当前第一计数值为24,即表明第一计数值不小于1,此时数据库服务器查找该目标数据库访问请求所对应的redis节点,并将该目标数据库访问请求转发给所查找到的redis节点。

假设在q时刻,数据库服务器接收到另一目标数据库访问请求,其首先判断第一计数值是否小于1,假设当前第一计数值为0,即表明第一计数值小于1。此时,数据库服务器统计当前时刻前第三预设时长内,判断出第一计数值小于1的总次数为42。

由于42大于上述第一预设阈值40,所以数据库服务器再判断当前第一预设数值与第二预设数值的和值是否小于第二预设阈值,此时,第一预设数值与第二预设数值的和值为60,小于第二预设阈值。所以数据库服务器更新第一预设数值为:当前第一预设数值与第二预设数值的和值60。

相应于图1所示方法实施例,如图4所示,本发明实施例提供了一种请求处理装置,包括:

接收模块110,用于接收目标数据库访问请求;

第一判断模块120,用于判断第一计数值是否小于1,其中,第一计数值为针对该目标数据库访问请求对应的目标用户所设置的计数值,第一计数值每间隔第一预设时长被设置为第一预设数值;

处理模块130,用于在第一判断模块120的判断结果为否的情况下,处理该目标数据库访问请求;

第一更新模块140,用于更新第一计数值为:当前第一计数值与1的差值。

作为本发明实施例的一种选实现方式,上述第一判断模块120,还可以用于在第一计数值小于1的情况下,间隔第二预设时长,返回执行判断第一计数值是否小于1的步骤。

相应于图2所示方法实施例,如图5所示,上述装置还可以包括:

统计模块150,用于在第一判断模块120的判断结果为是的情况下,统计当前时刻前第三预设时长内,判断出第一计数值小于1的总次数;

第二判断模块160,用于判断该总次数是否达到第一预设阈值;

第二更新模块170,用于在第二判断模块160的判断结果为是的情况下,更新第一预设数值为:当前第一预设数值与第二预设数值的和值。

相应于图3所示方法实施例,如图6所示,上述装置还可以包括:

第三判断模块180,用于在第二判断模块160的判断结果为是的情况下,判断当前第一预设数值与第二预设数值的和值是否小于第二预设阈值;

相应的,上述第二更新模块170,具体用于在第三判断模块180的判断结果为是的情况下,更新第一预设数值为:当前第一预设数值与第二预设数值的和值。

具体的,上述装置还可以包括:

反馈模块,用于在第二判断模块的判断结果为是的情况下,生成报警提示信息,并将报警提示信息反馈给目标数据库访问请求所对应的终端。

作为与图5所示装置实施例并列的一种实现方式,本发明实施例中,上述装置还可以包括:

第三更新模块,用于在第一判断模块的判断结果为是的情况下,更新针对目标用户所设置的第二计数值为:当前第二计数值与1的和值;

第四判断模块,用于判断更新后的第二计数值是否达到第三预设阈值;

第四更新模块,用于在第四判断模块的判断结果为是的情况下,更新第一预设数值为:当前第一预设数值与第二预设数值的和值。

由上可知,与现有技术相比,本实施例提供的方案中,数据库服务器只有在第一计数值不小于1的情况下,才会处理上述目标数据库访问请求,又由于第一计数值每间隔第一预设时长被设置为第一预设数值,且每处理一个目标用户的数据库访问请求,会更新第一计数值为:当前第一计数值与1的差值,故数据库服务器处理目标用户的数据库访问请求的平均速度为:第一预设数值与第一预设时长的比值,满足了数据库服务企业针对其所服务的不同用户设置不同qps限制的需求。

本发明实施例还提供了一种电子设备,如图7所示,包括处理器210和存储器220,其中,

存储器220,用于存放计算机程序;

处理器210,用于执行存储器220上所存放的程序时,实现如下步骤:

接收目标数据库访问请求;

判断第一计数值是否小于1,其中,第一计数值为针对该目标数据库访问请求对应的目标用户所设置的计数值,第一计数值每间隔第一预设时长被设置为第一预设数值;

如果不小于1,处理该目标数据库访问请求;

更新第一计数值为:当前第一计数值与1的差值。

关于该方法各个步骤的具体实现以及相关解释内容可以参见上述图1~3所示的方法实施例,在此不做赘述。

上述电子设备可以具备有实现上述电子设备与其他设备之间通信的通信接口。

上述的处理器210,通信接口,存储器220通过通信总线完成相互间的通信,此处所提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。

存储器220可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器210可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

由上可知,与现有技术相比,本实施例提供的方案中,数据库服务器只有在第一计数值不小于1的情况下,才会处理上述目标数据库访问请求,又由于第一计数值每间隔第一预设时长被设置为第一预设数值,且每处理一个目标用户的数据库访问请求,会更新第一计数值为:当前第一计数值与1的差值,故数据库服务器处理目标用户的数据库访问请求的平均速度为:第一预设数值与第一预设时长的比值,满足了数据库服务企业针对其所服务的不同用户设置不同qps限制的需求。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的请求处理方法。

由上可知,与现有技术相比,本实施例提供的方案中,数据库服务器只有在第一计数值不小于1的情况下,才会处理上述目标数据库访问请求,又由于第一计数值每间隔第一预设时长被设置为第一预设数值,且每处理一个目标用户的数据库访问请求,会更新第一计数值为:当前第一计数值与1的差值,故数据库服务器处理目标用户的数据库访问请求的平均速度为:第一预设数值与第一预设时长的比值,满足了数据库服务企业针对其所服务的不同用户设置不同qps限制的需求。

在本发明提供的再一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一请求处理方法所述的方法步骤。

由上可知,与现有技术相比,本实施例提供的方案中,数据库服务器只有在第一计数值不小于1的情况下,才会处理上述目标数据库访问请求,又由于第一计数值每间隔第一预设时长被设置为第一预设数值,且每处理一个目标用户的数据库访问请求,会更新第一计数值为:当前第一计数值与1的差值,故数据库服务器处理目标用户的数据库访问请求的平均速度为:第一预设数值与第一预设时长的比值,满足了数据库服务企业针对其所服务的不同用户设置不同qps限制的需求。

在本发明提供的再一实施例中,还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述任一请求处理方法所述的方法步骤。

由上可知,与现有技术相比,本实施例提供的方案中,数据库服务器只有在第一计数值不小于1的情况下,才会处理上述目标数据库访问请求,又由于第一计数值每间隔第一预设时长被设置为第一预设数值,且每处理一个目标用户的数据库访问请求,会更新第一计数值为:当前第一计数值与1的差值,故数据库服务器处理目标用户的数据库访问请求的平均速度为:第一预设数值与第一预设时长的比值,满足了数据库服务企业针对其所服务的不同用户设置不同qps限制的需求。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质、计算机程序产品以及计算机程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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