基于URL的流量服务限流方法、电子设备及计算机存储介质与流程

文档序号:18639380发布日期:2019-09-11 22:47阅读:282来源:国知局
基于URL的流量服务限流方法、电子设备及计算机存储介质与流程

本发明涉及互联网技术领域,具体涉及一种基于url的流量服务限流方法、电子设备及计算机存储介质。



背景技术:

通常用户的访问行为是针对某一url的,可能会出现大量用户集中访问该url,使得该url的流量服务出现问题,例如,响应比较慢,服务器崩溃等问题,此时,就需要进行限流处理。

现有的技术方案都是对服务器的网卡进行流量服务限流,这种限流方式针对的是某个服务器,是对服务器提供的所有流量服务进行了限流,通常情况下,一个服务器所提供的流量服务可能达到亿级别、甚至百亿级别,然而可能仅是部分url的流量服务存在限流的需求,若对服务器的网卡进行限流,就会导致该服务器上其它url的流量服务存在问题,影响正常的流量服务;另外,通常某一url的流量服务可能分布在多个服务器上,每台服务器提供的流量服务不同,仅对某一服务器进行限流并不能达到很好的限流效果,而对多个服务器同时进行限流就会影响正常的流量服务。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于url的流量服务限流方法、电子设备及计算机存储介质。

根据本发明的一个方面,提供了一种基于url的流量服务限流方法,包括:

启动多个统计线程及至少一个汇总线程;

任一统计线程对url请求数据进行统计,并每隔第一预设时间段将url请求数据发送至汇总线程;

汇总线程将多个统计线程发送的url请求数据进行汇总,将汇总url请求数据写入至数据库;

每隔第二预设时间段启动数据库查询服务,查询预设统计周期内的累计的汇总url请求数据,依据同期比较策略,确定是否对url的流量服务进行限流,其中,第二预设时间段大于第一预设时间段。

根据本发明的另一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;

存储器用于存放至少一可执行指令,可执行指令使处理器执行以下操作:

启动多个统计线程及至少一个汇总线程;

任一统计线程对url请求数据进行统计,并每隔第一预设时间段将url请求数据发送至汇总线程;

汇总线程将多个统计线程发送的url请求数据进行汇总,将汇总url请求数据写入至数据库;

每隔第二预设时间段启动数据库查询服务,查询预设统计周期内的累计的汇总url请求数据,依据同期比较策略,确定是否对url的流量服务进行限流,其中,第二预设时间段大于第一预设时间段。

根据本发明的又一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行以下操作:

启动多个统计线程及至少一个汇总线程;

任一统计线程对url请求数据进行统计,并每隔第一预设时间段将url请求数据发送至汇总线程;

汇总线程将多个统计线程发送的url请求数据进行汇总,将汇总url请求数据写入至数据库;

每隔第二预设时间段启动数据库查询服务,查询预设统计周期内的累计的汇总url请求数据,依据同期比较策略,确定是否对url的流量服务进行限流,其中,第二预设时间段大于第一预设时间段。

根据本发明公开的方案,启动多个统计线程及至少一个汇总线程;任一统计线程对url请求数据进行统计,并每隔第一预设时间段将url请求数据发送至汇总线程;汇总线程将多个统计线程发送的url请求数据进行汇总,将汇总url请求数据写入至数据库;每隔第二预设时间段启动数据库查询服务,查询预设统计周期内的累计的汇总url请求数据,依据同期比较策略,确定是否对url的流量服务进行限流,其中,第二预设时间段大于第一预设时间段。本发明提供的方案能够实现对某一url的流量服务进行限流,能够精细化地限流,避免了现有技术对服务器中的网卡进行限流,对服务器提供的所有流量服务都进行限流,导致服务器资源利用率低,且影响正常流量服务的缺陷;另外,通过对url的流量服务进行限流,实现了全量限流,提升了限流效率,避免了url的流量服务分布在多个服务器时,仅对某一个服务器进行限流,导致限流效果较差,而对多个服务器同时进行限流就会严重影响正常流量服务器的缺陷;通过设置使第二预设时间段大于第一预设时间段,能够保证限流的及时性。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的基于url的流量服务限流方法的流程示意图;

图2示出了根据本发明另一个实施例的基于url的流量服务限流方法的流程示意图;

图3示出了根据本发明一个实施例的电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的基于url的流量服务限流方法的流程示意图。如图1所示,该方法包括以下步骤:

步骤s100,启动多个统计线程及至少一个汇总线程。

本实施例是基于url进行流量服务限流的方案,是将对流量服务的限流处理具体落实到对某一url的流量服务限流,而不再是单机限流(即,对某一个服务器进行流量服务限流,限制了整个服务器提供的流量服务)。此外,该限流方案与url的流量服务分布在哪个服务器无关,是对分布在至少一个服务器上的url的流量服务进行限流,是全量限流方案。

在本实施例中,基于url进行流量服务限流,就需要对url请求数据进行统计,因此,需要启动多个统计线程及至少一个汇总线程,其中,多个统计线程负责对url请求数据进行统计,而汇总线程负责对多个统计线程统计的url请求数据进行汇总。

步骤s101,任一统计线程对url请求数据进行统计,并每隔第一预设时间段将url请求数据发送至汇总线程。

在启动多个统计线程及至少一个汇总线程后,多个统计线程中的任一统计线程开始对url请求数据进行统计,统计线程对存在url请求的url进行url请求数据统计,对于不同的url,统计得到的url请求数据不同,其中,url请求数据包含:url请求的数量及url请求的响应时间,url请求的数量是用户对某一url发起访问请求的请求数量,url请求的响应时间是针对某一url在用户发起访问请求后,针对该访问请求作出响应的时间。

任一统计线程不仅需要对url请求数据进行统计,还需要定期将统计的url请求数据发送给汇总线程,由汇总线程对多个统计线程发送的url请求数据进行汇总,例如,任一统计线程每隔第一预设时间段将url请求数据发送至汇总线程,举例说明,第一预设时间段为5秒,也就是说,任一统计线程每隔5将统计的url请求数据发送给汇总线程,发送给汇总线程的url请求数据是统计线程在这5秒内所统计的url请求数据,本领域技术人员可以根据实际需要灵活设定第一预设时间段的时长,这里仅是举例说明,不具有任何限定作用。

步骤s102,汇总线程将多个统计线程发送的url请求数据进行汇总,将汇总url请求数据写入至数据库。

汇总线程接收任一统计线程发送的url请求数据,并将多个统计线程发送的url请求数据汇总到一起,举例说明,启动了四个统计线程,四个统计线程每隔第一预设时间段发送给汇总线程的url请求数据分别是url请求数据1、url请求数据2、url请求数据3、url请求数据4,汇总线程在接收到url请求数据1、url请求数据2、url请求数据3、url请求数据4后,进行数据汇总,在汇总完成后,汇总线程将汇总url请求数据写入到数据库中,数据库中存储所有汇总线程写入的汇总url请求数据。

步骤s103,每隔第二预设时间段启动数据库查询服务,查询预设统计周期内的累计的汇总url请求数据,依据同期比较策略,确定是否对url的流量服务进行限流,其中,第二预设时间段大于第一预设时间段。

为了能够确定某一url的流量服务是否存在问题,就需要进行比较,比较对象是预设统计周期内的累计的汇总url请求数据与同期的汇总url请求数据,在本实施例中,可以通过以下方式获得预设统计周期内的累计的汇总url请求数据:每个第二预设时间段启动数据库查询服务,在启动数据库查询服务后,查询预设统计周期内的累计的汇总url请求数据,预设统计周期是根据比较需要而灵活设定的,例如,当前时间为2019年5月5日9:01,想要确定过去一分钟内即9:00-9:01期间url的流量服务是否存在问题,可以查询统计上一分钟累计的汇总url请求数据,将上一分钟累计的汇总url请求数据与同期的累计的汇总url请求数据进行比较,这里所说的同期的累计的汇总url请求数据例如可以是过去一周内9:00-9:01累计的汇总url请求数据,比较周期可以根据实际需要灵活设置。根据比较结果确定是否对url的流量服务进行限流。

为了保证流量服务限流的实时性,在本实施例中,设定第二预设时间段大于第一预设时间段,例如,第一预设时间段为5秒,那么第二预设时间段可以是6秒,这里仅是举例说明,不具有任何限定作用,本领域技术人员可以灵活设定第二预设时间段的时长。通过这种设置,能够保证在需要对url的流量服务限流时,能够及时限流,保证url能够正常提供流量服务。

根据本发明上述实施例提供的方法,启动多个统计线程及至少一个汇总线程;任一统计线程对url请求数据进行统计,并每隔第一预设时间段将url请求数据发送至汇总线程;汇总线程将多个统计线程发送的url请求数据进行汇总,将汇总url请求数据写入至数据库;每隔第二预设时间段启动数据库查询服务,查询预设统计周期内的累计的汇总url请求数据,依据同期比较策略,确定是否对url的流量服务进行限流,其中,第二预设时间段大于第一预设时间段。本发明提供的方案能够实现对某一url的流量服务进行限流,能够精细化地限流,避免了现有技术对服务器中的网卡进行限流,对服务器提供的所有流量服务都进行限流,导致服务器资源利用率低,且影响正常流量服务的缺陷;另外,通过对url的流量服务进行限流,实现了全量限流,提升了限流效率,避免了url的流量服务分布在多个服务器时,仅对某一个服务器进行限流,导致限流效果较差,而对多个服务器同时进行限流就会严重影响正常流量服务器的缺陷;通过设置使第二预设时间段大于第一预设时间段,能够保证限流的及时性。

图2示出了根据本发明另一个实施例的基于url的流量服务限流方法的流程示意图。如图2所示,该方法包括以下步骤:

步骤s200,启动多个统计线程及至少一个汇总线程。

在本实施例中,启动的统计线程的数量与cpu核心数对应,例如,若cpu核心数为四核,那么就启动四个统计线程;若cpu核心数为八核,那么就启动八个统计线程,这里仅是举例说明,不具有任何限定作用。设定启动的统计线程的数量与cpu核心数对应,能够保证充分利用cpu资源,提升限流效率。

在本实施例中,基于url进行流量服务限流,就需要对url请求数据进行统计,因此,需要启动多个统计线程及至少一个汇总线程,其中,多个统计线程负责对url请求数据进行统计,而汇总线程负责对多个统计线程统计的url请求数据进行汇总。

客户端通过异步方式将url请求发送给统计线程,异步指客户端可以正常处理url请求,并在处理完成后,将url请求发送给多个统计线程。通过异步方式将url请求发送给统计线程,并不影响客户端对url请求的正常响应,本实施例中的客户端是ng客户端,具体地,ng客户端通过syslog协议将url请求异步地发送给统计线程,任一统计线程接收客户端通过异步方式发送的url请求。

步骤s201,任一统计线程根据路径或者路径及参数对url请求数据进行统计,并每隔第一预设时间段将url请求数据发送至汇总线程。

在本实施例中,是针对url的流量服务进行限流,那么在确定是否对url的流量服务进行限流之前,需要先对url进行区分,通常情况下,url由以下几个部分组成:protocol://hostname[:port]/path/[;parameters][?query]#fragment,其中,protocol(协议),常用的协议是http;hostname(主机地址),可以是域名,也可以是ip地址;port(端口)http协议默认端口是:80端口,如果不写默认就是:80端口;path(路径)网络资源在服务器中的指定路径;parameter(参数)如果要向服务器传入参数,在这部分输入;query(查询字符串)如果需要从服务器那里查询内容,在这里编辑;fragment(信息片段)网页中可能会分为不同的片段,如果想访问网页后直接到达指定位置,可以在这部分设置;由此可以通过路径将不同的url区分开来,然而,也可能存在部分url的路径相同的情况,对于这些url则可以通过路径及参数相结合的方式将url区分开来,因此,可以利用url的路径(path)或者路径及参数对url进行唯一性标识,从而将多个url区分开来。

任一统计线程在接收到客户端通过异步方式发送的url请求后,负责进行url请求数据的统计,统计过程是建立url与url请求数据的对应关系的过程,本实施例中的url请求数据包含:url请求的数量及url请求的响应时间,因此,统计的是针对url作出的请求的数量以及针对该url请求而作出的响应时间。

任一统计线程不仅需要对url请求数据进行统计,还需要定期将统计的url请求数据发送给汇总线程,由汇总线程对多个统计线程发送的url请求数据进行汇总,例如,任一统计线程每隔第一预设时间段将url请求数据发送至汇总线程,举例说明,第一预设时间段为5秒,也就是说,任一统计线程每隔5将统计的url请求数据发送给汇总线程,发送给汇总线程的url请求数据是统计线程在这5秒内所统计的url请求数据,本领域技术人员可以根据实际需要灵活设定第一预设时间段的时长,这里仅是举例说明,不具有任何限定作用。

步骤s202,汇总线程将多个统计线程发送的url请求数据进行汇总,将汇总url请求数据写入至数据库。

汇总线程接收任一统计线程发送的url请求数据,并将多个统计线程发送的url请求数据汇总到一起,举例说明,启动了四个统计线程,四个统计线程每隔第一预设时间段发送给汇总线程的url请求数据分别是url请求数据1、url请求数据2、url请求数据3、url请求数据4,汇总线程在接收到url请求数据1、url请求数据2、url请求数据3、url请求数据4后,进行数据汇总,在汇总完成后,汇总线程将汇总url请求数据写入到数据库中,数据库中存储所有汇总线程写入的汇总url请求数据。

举例说明,汇总线程接收到多个统计线程5秒时发送的url请求数据,对接收到的数据汇总,写入至数据库,然后,汇总线程再一次接收到多个统计线程10秒时发送的url请求数据,汇总后写入至数据库,依此类推。

步骤s203,每隔第二预设时间段启动数据库查询服务,查询预设统计周期内的累计的汇总url请求的数量和/或累计的汇总url请求的响应时间。

为了能够确定某一url的流量服务是否存在问题,就需要进行比较,比较对象是预设统计周期内的累计的汇总url请求数据与同期的汇总url请求数据,在本实施例中,可以通过以下方式获得预设统计周期内的累计的汇总url请求数据:每个第二预设时间段启动数据库查询服务,在启动数据库查询服务后,查询预设统计周期内的累计的汇总url请求的数量和/或累计的汇总url请求的响应时间,预设统计周期是根据比较需要而灵活设定的,例如,当前时间为2019年5月5日9:01,想要确定过去一分钟内即9:00-9:01期间url的流量服务是否存在问题,可以查询统计上一分钟累计的汇总url请求数据,将上一分钟累计的汇总url请求数据与同期的累计的汇总url请求数据进行比较,这里所说的同期的累计的汇总url请求数据例如可以是过去一周内9:00-9:01累计的汇总url请求数据,比较周期可以根据实际需要灵活设置。

为了保证流量服务限流的实时性,在本实施例中,设定第二预设时间段大于第一预设时间段,例如,第一预设时间段为5秒,那么第二预设时间段可以是6秒,这里仅是举例说明,不具有任何限定作用,本领域技术人员可以灵活设定第二预设时间段的时长。通过这种设置,能够保证在需要对url的流量服务限流时,能够及时限流,保证url能够正常提供流量服务。

步骤s204,将查询到的预设统计周期内累计的汇总url请求的数量与同期的url请求的数量进行比较,根据比较结果确定是否对url的流量服务进行限流。

在查询到预设统计周期内的累计的汇总url请求的数量之后,可以根据预设统计周期内累计的汇总url请求的数量来确定是否对url的流量服务进行限流,具体地,可以将查询到的预设统计周期内累计的汇总url请求的数量与同期的url请求的数量进行比较,若比较结果为预设统计周期内累计的汇总url请求的数量与同期的url请求的数量的百分比大于或等于预设数量阈值,可以确定需要对url的流量服务进行限流。

步骤s205,根据累计的汇总url请求的数量及累计的汇总url请求的响应时间计算平均url请求的响应时间。

url请求的响应时间反映了响应请求所需的时间,url请求的响应时间的长短也能反映出url的流量服务是否存在问题。由于针对不同的url,url请求的数量不同,每个url请求的响应时间不同,因此,需要借助平均url请求的响应时间来确定是否对url的流量服务进行限流。在本实施例中,是将预设统计周期作为累计时间,在查询到累计的汇总url请求的数量及累计的汇总url请求的响应时间之后,可以将累计的汇总url请求的响应时间与累计的汇总url请求的数量的商作为平均url请求的响应时间。例如,累计的汇总url请求的响应时间为150秒,累计的汇总url请求的数量为100,那么平均url请求的响应时间=150/100=1.5秒。

步骤s206,将计算得到的平均url请求的响应时间与同期的平均url请求的响应时间进行比较,根据比较结果确定是否对url的流量服务进行限流。

在计算得到平均url请求的响应时间后,将计算得到的平均url请求的响应时间与同期的平均url请求的响应时间进行比较,若比较结果为计算得到的平均url请求的响应时间与同期的平均url请求的响应时间之差大于或等于预设时间阈值,则确定需要对url的流量服务进行限流;若比较结果为计算得到的平均url请求的响应时间与同期的平均url请求的响应时间之差小于预设时间阈值,则不需要对url的流量服务进行限流。

在本发明可选实施方式中,可以仅利用步骤s204中的方法确定是否对url的流量服务进行限流,也可以仅利用步骤s205-步骤s206中的方法确定是否对url的流量服务进行限流,也可以同时利用步骤s204-步骤s206中的方法确定是否对url的流量服务进行限流。

步骤s207,若确定对url的流量服务进行限流,则查询该url对应的限流策略,依据限流策略对url的流量服务进行限流。

在确定对url的流量服务进行限流的情况下,需要对url的流量服务进行限流不同,不同的url所对应的限流策略可能并不相同,具体地,可以查询该url对应的限流策略,在得到该url对应的限流策略后,依据所查询到的限流策略对url的流量服务进行限流,例如,对于某一url需要拦截50%的url请求,而对于另一url需要拦截30%的url请求,这里仅是举例说明,不具有任何限定作用。

在本发明一种可选实施方式中,在查询到预设统计周期内累计的汇总url请求数据后,还可以依据同期比较策略,确定是否针对该url生成报警信息以进行报警,例如,若预设统计周期内累计的汇总url请求的数量与同期的url请求的数量的百分比大于或等于预设数量阈值,可以确定需要针对该url生成报警信息以进行报警。

本发明提供的方案能够实现对某一url的流量服务进行限流,能够精细化地限流,避免了现有技术对服务器中的网卡进行限流,对服务器提供的所有流量服务都进行限流,导致服务器资源利用率低,且影响正常流量服务的缺陷;另外,通过对url的流量服务进行限流,实现了全量限流,提升了限流效率,避免了url的流量服务分布在多个服务器时,仅对某一个服务器进行限流,导致限流效果较差,而对多个服务器同时进行限流就会严重影响正常流量服务器的缺陷;从url请求的数量和url请求的响应时间两个方面考虑是否对对url的流量服务进行限流,提升了限流的准确性;通过设置使第二预设时间段大于第一预设时间段,能够保证限流的及时性,克服了因限流不及时导致url无法正常提供流量服务;设置启动的统计线程的数量与cpu核心数对应,可以充分利用cpu资源,提高了限流效率。

本发明实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于url的流量服务限流方法。

可执行指令具体可以用于使得处理器执行以下操作:

启动多个统计线程及至少一个汇总线程;

任一统计线程对url请求数据进行统计,并每隔第一预设时间段将url请求数据发送至汇总线程;

汇总线程将多个统计线程发送的url请求数据进行汇总,将汇总url请求数据写入至数据库;

每隔第二预设时间段启动数据库查询服务,查询预设统计周期内的累计的汇总url请求数据,依据同期比较策略,确定是否对url的流量服务进行限流,其中,第二预设时间段大于第一预设时间段。

在一种可选的实施方式中,url请求数据包含:url请求的数量及url请求的响应时间。

在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:查询预设统计周期内的累计的汇总url请求的数量和/或累计的汇总url请求的响应时间。

在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:将查询到的预设统计周期内累计的汇总url请求的数量与同期的url请求的数量进行比较,根据比较结果确定是否对url的流量服务进行限流。

在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:

根据累计的汇总url请求的数量及累计的汇总url请求的响应时间计算平均url请求的响应时间;

将计算得到的平均url请求的响应时间与同期的平均url请求的响应时间进行比较,根据比较结果确定是否对url的流量服务进行限流。

在一种可选的实施方式中,可执行指令还使处理器执行以下操作:若确定对url的流量服务进行限流,则查询该url对应的限流策略,依据限流策略对url的流量服务进行限流。

在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:任一统计线程根据路径或者路径及参数对url请求数据进行统计。

在一种可选的实施方式中,可执行指令还使处理器执行以下操作:依据同期比较策略,确定是否针对该url生成报警信息以进行报警。

在一种可选的实施方式中,启动的统计线程的数量与cpu核心数对应。

在一种可选的实施方式中,任一统计线程接收客户端通过异步方式发送的url请求。

图3示出了根据本发明一个实施例的电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。

如图3所示,该电子设备可以包括:处理器(processor)302、通信接口(communicationsinterface)304、存储器(memory)306、以及通信总线308。

其中:处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。

通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。

处理器302,用于执行程序310,具体可以执行上述基于url的流量服务限流方法实施例中的相关步骤。

具体地,程序310可以包括程序代码,该程序代码包括计算机操作指令。

处理器302可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。

存储器306,用于存放程序310。存储器306可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

程序310具体可以用于使得处理器302执行以下操作:

启动多个统计线程及至少一个汇总线程;

任一统计线程对url请求数据进行统计,并每隔第一预设时间段将url请求数据发送至汇总线程;

汇总线程将多个统计线程发送的url请求数据进行汇总,将汇总url请求数据写入至数据库;

每隔第二预设时间段启动数据库查询服务,查询预设统计周期内的累计的汇总url请求数据,依据同期比较策略,确定是否对url的流量服务进行限流,其中,第二预设时间段大于第一预设时间段。

在一种可选的实施方式中,url请求数据包含:url请求的数量及url请求的响应时间。

在一种可选的实施方式中,程序310进一步使处理器302执行以下操作:查询预设统计周期内的累计的汇总url请求的数量和/或累计的汇总url请求的响应时间。

在一种可选的实施方式中,程序310进一步使处理器302执行以下操作:将查询到的预设统计周期内累计的汇总url请求的数量与同期的url请求的数量进行比较,根据比较结果确定是否对url的流量服务进行限流。

在一种可选的实施方式中,程序310进一步使处理器302执行以下操作:根据累计的汇总url请求的数量及累计的汇总url请求的响应时间计算平均url请求的响应时间;

将计算得到的平均url请求的响应时间与同期的平均url请求的响应时间进行比较,根据比较结果确定是否对url的流量服务进行限流。

在一种可选的实施方式中,程序310还使处理器302执行以下操作:若确定对url的流量服务进行限流,则查询该url对应的限流策略,依据限流策略对url的流量服务进行限流。

在一种可选的实施方式中,程序310进一步使处理器302执行以下操作:任一统计线程根据路径或者路径及参数对url请求数据进行统计。

在一种可选的实施方式中,程序310还使处理器302执行以下操作:依据同期比较策略,确定是否针对该url生成报警信息以进行报警。

在一种可选的实施方式中,启动的统计线程的数量与cpu核心数对应。

在一种可选的实施方式中,任一统计线程接收客户端通过异步方式发送的url请求。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明公开了:a1、一种基于url的流量服务限流方法,包括:

启动多个统计线程及至少一个汇总线程;

任一统计线程对url请求数据进行统计,并每隔第一预设时间段将url请求数据发送至汇总线程;

汇总线程将多个统计线程发送的url请求数据进行汇总,将汇总url请求数据写入至数据库;

每隔第二预设时间段启动数据库查询服务,查询预设统计周期内的累计的汇总url请求数据,依据同期比较策略,确定是否对url的流量服务进行限流,其中,第二预设时间段大于第一预设时间段。

a2.根据a1所述的方法,其中,所述url请求数据包含:url请求的数量及url请求的响应时间。

a3.根据a2所述的方法,其中,所述查询预设统计周期内的累计的汇总url请求数据进一步包括:

查询预设统计周期内的累计的汇总url请求的数量和/或累计的汇总url请求的响应时间。

a4.根据a3所述的方法,其中,所述依据同期比较策略,确定是否对url的流量服务进行限流进一步包括:

将查询到的预设统计周期内累计的汇总url请求的数量与同期的url请求的数量进行比较,根据比较结果确定是否对url的流量服务进行限流。

a5.根据a3所述的方法,其中,所述依据同期比较策略,确定是否对url的流量服务进行限流进一步包括:

根据累计的汇总url请求的数量及累计的汇总url请求的响应时间计算平均url请求的响应时间;

将计算得到的平均url请求的响应时间与同期的平均url请求的响应时间进行比较,根据比较结果确定是否对url的流量服务进行限流。

a6.根据a1-a5中任一项所述的方法,其中,所述方法还包括:若确定对url的流量服务进行限流,则查询该url对应的限流策略,依据所述限流策略对所述url的流量服务进行限流。

a7.根据a1-a6中任一项所述的方法,其中,所述任一统计线程对url请求数据进行统计进一步包括:

任一统计线程根据路径或者路径及参数对url请求数据进行统计。

a8.根据a1-a7中任一项所述的方法,其中,所述方法还包括:依据同期比较策略,确定是否针对该url生成报警信息以进行报警。

a9.根据a1-a8中任一项所述的方法,其中,启动的统计线程的数量与cpu核心数对应。

a10.根据a1-a9中任一项所述的方法,其中,任一统计线程接收客户端通过异步方式发送的url请求。

b11.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行以下操作:

启动多个统计线程及至少一个汇总线程;

任一统计线程对url请求数据进行统计,并每隔第一预设时间段将url请求数据发送至汇总线程;

汇总线程将多个统计线程发送的url请求数据进行汇总,将汇总url请求数据写入至数据库;

每隔第二预设时间段启动数据库查询服务,查询预设统计周期内的累计的汇总url请求数据,依据同期比较策略,确定是否对url的流量服务进行限流,其中,第二预设时间段大于第一预设时间段。

b12.根据b11所述的电子设备,其中,所述url请求数据包含:url请求的数量及url请求的响应时间。

b13.根据b12所述的电子设备,其中,所述可执行指令进一步使所述处理器执行以下操作:查询预设统计周期内的累计的汇总url请求的数量和/或累计的汇总url请求的响应时间。

b14.根据b13所述的电子设备,其中,所述可执行指令进一步使所述处理器执行以下操作:将查询到的预设统计周期内累计的汇总url请求的数量与同期的url请求的数量进行比较,根据比较结果确定是否对url的流量服务进行限流。

b15.根据b13所述的电子设备,其中,所述可执行指令进一步使所述处理器执行以下操作:根据累计的汇总url请求的数量及累计的汇总url请求的响应时间计算平均url请求的响应时间;

将计算得到的平均url请求的响应时间与同期的平均url请求的响应时间进行比较,根据比较结果确定是否对url的流量服务进行限流。

b16.根据b11-b15中任一项所述的电子设备,其中,所述可执行指令还使所述处理器执行以下操作:若确定对url的流量服务进行限流,则查询该url对应的限流策略,依据所述限流策略对所述url的流量服务进行限流。

b17.根据b11-b16中任一项所述的电子设备,其中,所述可执行指令进一步使所述处理器执行以下操作:任一统计线程根据路径或者路径及参数对url请求数据进行统计。

b18.根据b11-b17中任一项所述的电子设备,其中,所述可执行指令还使所述处理器执行以下操作:依据同期比较策略,确定是否针对该url生成报警信息以进行报警。

b19.根据b11-b17中任一项所述的电子设备,其中,启动的统计线程的数量与cpu核心数对应。

b20.根据b11-b19中任一项所述的电子设备,其中,任一统计线程接收客户端通过异步方式发送的url请求。

c21.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行以下操作:

启动多个统计线程及至少一个汇总线程;

任一统计线程对url请求数据进行统计,并每隔第一预设时间段将url请求数据发送至汇总线程;

汇总线程将多个统计线程发送的url请求数据进行汇总,将汇总url请求数据写入至数据库;

每隔第二预设时间段启动数据库查询服务,查询预设统计周期内的累计的汇总url请求数据,依据同期比较策略,确定是否对url的流量服务进行限流,其中,第二预设时间段大于第一预设时间段。

c22.根据c21所述的计算机存储介质,其中,所述url请求数据包含:url请求的数量及url请求的响应时间。

c23.根据c22所述的计算机存储介质,其中,所述可执行指令进一步使所述处理器执行以下操作:查询预设统计周期内的累计的汇总url请求的数量和/或累计的汇总url请求的响应时间。

c24.根据c23所述的计算机存储介质,其中,所述可执行指令进一步使所述处理器执行以下操作:将查询到的预设统计周期内累计的汇总url请求的数量与同期的url请求的数量进行比较,根据比较结果确定是否对url的流量服务进行限流。

c25.根据c23所述的计算机存储介质,其中,所述可执行指令进一步使所述处理器执行以下操作:

根据累计的汇总url请求的数量及累计的汇总url请求的响应时间计算平均url请求的响应时间;

将计算得到的平均url请求的响应时间与同期的平均url请求的响应时间进行比较,根据比较结果确定是否对url的流量服务进行限流。

c26.根据c21-c25中任一项所述的计算机存储介质,其中,所述可执行指令还使所述处理器执行以下操作:若确定对url的流量服务进行限流,则查询该url对应的限流策略,依据所述限流策略对所述url的流量服务进行限流。

c27.根据c21-c26中任一项所述的计算机存储介质,其中,所述可执行指令进一步使所述处理器执行以下操作:任一统计线程根据路径或者路径及参数对url请求数据进行统计。

c28.根据c21-c27中任一项所述的计算机存储介质,其中,所述可执行指令还使所述处理器执行以下操作:依据同期比较策略,确定是否针对该url生成报警信息以进行报警。

c29.根据c21-c28中任一项所述的计算机存储介质,其中,启动的统计线程的数量与cpu核心数对应。

c30.根据c21-c29中任一项所述的计算机存储介质,其中,任一统计线程接收客户端通过异步方式发送的url请求。

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