CN115174483B - 基于时间窗口的限流方法、装置、服务器和存储介质 - Google Patents

基于时间窗口的限流方法、装置、服务器和存储介质 Download PDF

Info

Publication number
CN115174483B
CN115174483B CN202210440243.1A CN202210440243A CN115174483B CN 115174483 B CN115174483 B CN 115174483B CN 202210440243 A CN202210440243 A CN 202210440243A CN 115174483 B CN115174483 B CN 115174483B
Authority
CN
China
Prior art keywords
time window
network request
time
request
target network
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
Application number
CN202210440243.1A
Other languages
English (en)
Other versions
CN115174483A (zh
Inventor
赵海涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pingan Payment Technology Service Co Ltd
Original Assignee
Pingan Payment Technology Service Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Pingan Payment Technology Service Co Ltd filed Critical Pingan Payment Technology Service Co Ltd
Priority to CN202210440243.1A priority Critical patent/CN115174483B/zh
Publication of CN115174483A publication Critical patent/CN115174483A/zh
Application granted granted Critical
Publication of CN115174483B publication Critical patent/CN115174483B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • H04L47/225Determination of shaping rate, e.g. using a moving window
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及人工智能技术,公开了一种基于时间窗口的限流方法、装置、服务器及存储介质,该方法包括:根据目标网络请求的请求时间,判断是否存在与目标网络请求匹配的第一时间窗口;若不存在,则创建与目标网络请求匹配的第二时间窗口;其中,第二时间窗口的时间起点为目标网络请求的请求时间;根据第二时间窗口的限流阈值,对第二时间窗口内的网络请求进行处理。本发明实施例提供的技术方案,时间窗口不在固定的物理时间创建完成,避免了无网络请求下对时间窗口的冗余维护,同时,确保了实际响应的网络请求数量不超过服务器的限流阈值,避免了服务器系统故障的发生,极大地减少了请求计数器的数量,减少了占用的服务器计算资源。

Description

基于时间窗口的限流方法、装置、服务器和存储介质
技术领域
本发明实施例涉及人工智能领域,尤其涉及一种基于时间窗口的限流方法、装置、服务器和存储介质。
背景技术
随着互联网技术的不断发展,网络中的通信流量呈现几何倍数的增长,为了避免网络请求超过服务器的最大承载能力,服务器通常通过时间窗口机制计算获取到的网络请求数量。
现有技术中,对于网络请求的数量统计具体是通过固定时间窗口或者滑动时间窗口的方式获取;其中,固定时间窗口是以固定的物理时间(例如,每日的零点)作为窗口起点,每个时间窗口的大小和位置固定,分别统计每个时间窗口中的网络请求数量;滑动时间窗口同样以固定的物理时间作为窗口起点,还将单位时间划分为多个时间段,每经过一个时间段,时间窗口就会向右滑动一格,进而累加窗口内所有时间段的计数器值。
然而上述计算方式,基于固定时间窗口的获取方式,往往造成一个窗口长度的物理时间内,实际响应的网络请求数量超过服务器的限流阈值,导致出现系统故障;基于滑动时间窗口的获取方式,则需要占用大量的服务器计算资源。
发明内容
本发明实施例提供了一种基于时间窗口的限流方法、装置、服务器和存储介质,以实现基于时间窗口的网络请求限流。
第一方面,本发明实施例提供了一种基于时间窗口的限流方法,包括:
响应于获取到目标网络请求,根据所述目标网络请求的请求时间,判断是否存在与所述目标网络请求匹配的第一时间窗口;
若不存在与所述目标网络请求匹配的第一时间窗口,则创建与所述目标网络请求匹配的第二时间窗口;其中,所述第二时间窗口的时间起点为所述目标网络请求的请求时间;
根据所述第二时间窗口的限流阈值,对所述第二时间窗口内的网络请求进行处理。
第二方面,本发明实施例提供了一种基于时间窗口的限流装置,包括:
第一时间窗口判断模块,用于响应于获取到目标网络请求,根据所述目标网络请求的请求时间,判断是否存在与所述目标网络请求匹配的第一时间窗口;
第二时间窗口创建模块,用于若不存在与所述目标网络请求匹配的第一时间窗口,则创建与所述目标网络请求匹配的第二时间窗口;其中,所述第二时间窗口的时间起点为所述目标网络请求的请求时间;
网络请求处理模块,用于根据所述第二时间窗口的限流阈值,对所述第二时间窗口内的网络请求进行处理。
第三方面,本发明实施例还提供了一种服务器,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的基于时间窗口的限流方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时实现本发明任意实施例所述的基于时间窗口的限流方法。
本发明实施例提供的技术方案,根据获取到的目标网络请求的请求时间,在判断不存在与目标网络请求匹配的时间窗口时,以目标网络请求的请求时间为时间起点创建时间窗口,进而根据新创建时间窗口的限流阈值,对该时间窗口内的网络请求进行处理,本发明实施例中的时间窗口不在固定的物理时间创建完成,避免了无网络请求下对时间窗口的冗余维护,同时,相比于传统的固定时间窗口,确保了实际响应的网络请求数量不超过服务器的限流阈值,避免了服务器系统故障的发生,相比于传统的滑动时间窗口,极大地减少了请求计数器的数量,减少了占用的服务器计算资源。
附图说明
图1A是本发明实施例一提供的一种基于时间窗口的限流方法的流程图;
图1B是本发明实施例一提供的固定时间窗口的示意图;
图1C是本发明实施例一提供的滑动时间窗口的示意图;
图1D是本发明实施例一提供的时间窗口的示意图;
图2是本发明实施例二提供的一种基于时间窗口的限流方法的流程图;
图3是本发明实施例三提供的一种基于时间窗口的限流方法的流程图;
图4是本发明实施例四提供的一种基于时间窗口的限流装置的结构框图;
图5是本发明实施例五提供的一种服务器的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1A为本发明实施例一提供的一种基于时间窗口的限流方法的流程图,本实施例可适用于不存在与目标网络请求匹配的时间窗口时,创建与目标网络请求匹配的时间窗口,并根据新创建时间窗口的限流阈值,对该时间窗口内的网络请求进行处理,该方法可以由本发明实施例中基于时间窗口的限流装置来执行,该装置可以通过软件和/或硬件实现,并集成在服务器中,典型的,可以集成在电商平台的服务器中;
服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
该方法具体包括如下步骤:
S110、响应于获取到目标网络请求,根据所述目标网络请求的请求时间,判断是否存在与所述目标网络请求匹配的第一时间窗口。
图1B为传统技术方案中,基于固定时间窗口的限流方式,假设固定时间窗口的长度为500毫秒(ms),服务器的业务承受能力为每500ms最多承受10笔网络请求调用,而服务器在第300ms、400ms、500ms、600ms和700ms的时间点各有5笔调用,其他时间处于空窗期(即未获取到任何网络请求)。此时服务器会在第一个固定时间窗口内处理第300ms和400ms获取到的总共10笔调用,并且在第二固定时间处理第500ms和600ms获取到的总共10笔调用,直到第700ms获取到的调用会被限流,但实际上在500ms的连续物理时间(第300毫秒至第800毫秒)内,服务器实际处理了20笔调用,超过了服务器的限流阈值,存在较大的系统安全风险。
图1C为传统技术方案中,基于滑动时间窗口的限流方式,假设滑动时间窗口的长度为500ms,服务器的业务承受能力为每500ms最多承受10笔网络请求调用,滑动时间窗口被划分为多个单位分区(例如,单位分区为100ms),每一个单位分区内设置一个计数器,如果一个网络请求落在该单位分区内,则该单位分区内的计数器就会加1;每经过一个单位分区,滑动时间窗口就会往右滑动一格(即一个单位分区),抛弃最老的一个单位分区,并纳入一个新分区,当计算整个滑动时间窗口内的网络请求总数时,会累计滑动时间窗口内所有单位分区内的计数器,当计数总和超过了限流时,则滑动时间窗口内再获取到网络请求时都会被丢弃。
与传统技术方案中,固定时间窗口和滑动时间窗口均在固定的物理时间(例如,每日的零点准时创建)创建完成不同,本发明实施例中,时间窗口并不在固定的物理时间创建完成,而是在服务器每次启动完成,且获取到首个网络请求时,创建首个时间窗口,而后续时间窗口的创建,则是在前一个时间窗口结束后,首次获取到网络请求时创建,避免了无网络请求下对时间窗口的冗余维护;其中,时间窗口的窗口长度,可以根据需要设定为固定值或非固定值。
图1D中以时间窗口的长度为固定值500ms为例;为了便于计算,在服务器完成启动后,将系统时间定义为0秒时刻;此时由于未获取到任何网络请求,因此不创建时间窗口;当时间到达第300ms时,获取到首个网络请求(例如,网络请求A),此时创建首个时间窗口(即时间窗口A),并对首个时间窗口内(即在大于等于300ms且小于800ms的时间跨度内)的网络请求进行处理,在首个时间窗口内,可能仅获取到一个网络请求(即仅获取到网络请求A),也可能获取到多个网络请求,服务器根据自身承载能力,响应全部或部分网络请求。
在首个时间窗口结束后,即系统时间超过800ms时,由于未继续获取到网络请求,此时不创建时间窗口;当系统时间到达1000ms时,再次获取到网络请求(例如,网络请求B),此时,再次创建时间窗口(即时间窗口B),该时间窗口的时间起点,即为网络请求B的请求时间,也即第1000ms;将第1000ms作为起点,创建窗口长度为500ms的时间窗口,继续对第二时间窗口内(即大于等于1000ms且小于1500ms的时间跨度内)的网络请求进行处理。
S120、若不存在与所述目标网络请求匹配的第一时间窗口,则创建与所述目标网络请求匹配的第二时间窗口;其中,所述第二时间窗口的时间起点为所述目标网络请求的请求时间。
如果不存在与目标网络请求匹配的第一时间窗口,表明该目标网络请求为服务器启动后的首个网络请求,或者为某个时间窗口结束后,获取到的首个网络请求,此时不存在对应的、已创建的时间窗口,因此需要创建新的时间窗口,上述目标网络请求作为该时间窗口的首个网络请求,并继续统计该时间窗口内的网络请求数量。
S130、根据所述第二时间窗口的限流阈值,对所述第二时间窗口内的网络请求进行处理。
在一个时间窗口内,每次获取到一个网络请求时,即将该时间窗口对应的窗口计数器进行加1处理(计数器可以与时间窗口一一匹配);如果获取到某个网络请求后,该窗口内的网络请求数量小于等于限流阈值,则响应该网络请求,以确保对网络请求的正常响应;显然,目标网络请求为第二时间窗口内获取到的首个网络请求,此时直接响应该目标网络请求;而当获取到某个网络请求后,使得该窗口内的网络请求数量大于限流阈值时,不响应该网络请求,也不响应第二时间窗口内的后续网络请求,以确保对网络请求的处理,不超过服务器的业务承载能力,避免发生系统故障;特别的,不同的时间窗口对应的限流阈值可以根据需要设定为相同数值,也可以设定为不同数值。
可选的,在本发明实施例中,在判断是否存在与所述目标网络请求匹配的第一时间窗口后,还包括:若存在与所述目标网络请求匹配的第一时间窗口,则根据所述目标网络请求,更新所述第一时间窗口内的网络请求数量,并判断所述第一时间窗口内的网络请求数量,是否超过所述第一时间窗口的限流阈值;若未超过所述第一时间窗口的限流阈值,则响应所述目标网络请求;若超过所述第一时间窗口的限流阈值,则不响应所述目标网络请求,以及不响应所述第一时间窗口内位于所述目标网络请求之后的其它网络请求。
具体的,如果存在与目标网络请求匹配的第一时间窗口,表明在获取该目标网络请求之前,已预先创建了匹配的时间窗口,即第一时间窗口;目标网络请求并非第一时间窗口中获取到的首个网络请求,因此,将第一时间窗口对应的窗口计数器进行加1处理后,先判断第一时间窗口内的网络请求数量,是否超过第一时间窗口的限流阈值;如果未超过,则响应该目标网络请求;如果超过,则不响应该目标网络请求,也不响应该网络请求之后的其它网络请求,避免网络请求数量超过服务器的业务承载能力,导致系统故障发生。以上述技术方案为例,图1D中如果在第500ms获取到网络请求C,显然与网络请求C匹配的时间窗口为时间窗口A,即已存在与网络请求C匹配的时间窗口,此时,将网络请求C分配入时间窗口A中,继续统计时间窗口A中的网络请求数量,以根据时间窗口A内的网络请求数量,判断是否响应网络请求C。
可选的,在本发明实施例中,所述创建与所述目标网络请求匹配的第二时间窗口,包括:根据所述目标网络请求的请求时间,获取匹配的业务承载等级;根据所述业务承载等级,获取匹配的目标窗口长度和目标限流阈值;根据所述目标网络请求的请求时间、所述目标窗口长度和所述目标限流阈值,创建与所述目标网络请求匹配的第二时间窗口。
具体的,服务器在不同的时间阶段,其业务承载能力可能不同,例如,周末获取到的网络请求相比于工作日较多,服务器可以通过增加功能模块,或者扩展服务器集群的形式,提高服务器配置,进而提升服务器的业务承载能力;凌晨时段的网络期请求相比于白天时段较少,服务器可以通过减少功能模块的方式,降低服务器配置,节省服务器资源。业务承载等级反应了服务器的业务处理能力,即单位时间内可以响应的网络请求的数量;因此,不同的业务承载等级,其对应的窗口长度和限流阈值不同;业务承载等级越高,业务处理能力越强,窗口长度越短,限流阈值越大;业务承载等级越低,业务处理能力越弱,窗口长度越长,限流阈值越小。因此,根据网络请求的请求时间,确定服务器当前时刻所处的业务承载等级,进而根据该业务承载等级下的窗口长度和限流阈值,创建匹配的第二时间窗口,以使创建的第二时间窗口,适应服务器的业务承载能力。
可选的,在本发明实施例中,所述业务承载等级包括高承载等级、中承载等级和低承载等级;所述高承载等级的窗口长度等于所述中承载等级的窗口长度,所述高承载等级的限流阈值大于所述中承载等级的限流阈值;所述低承载等级的窗口长度小于所述中承载等级的窗口长度,所述低承载等级的限流阈值等于所述中承载等级的限流阈值。
具体的,业务承载等级较高时,可以通过增加限流阈值的方式,提高其处理能力,例如,将500ms时间内的限流阈值由10笔提升至20笔,窗口长度保持不变;也可以通过缩小窗口长度的方式,提高其处理能力,例如,将窗口长度修改为250ms,限流阈值保持不变;但是当缩小窗口长度时,相应的增加了计数器的数量,即从500ms设置一个网络请求计数器,变更为250ms内设置一个计数器,增大了服务器额外的计数器开销,因此,当服务器的业务处理能力为高承载等级时,相比于中承载等级,窗口长度保持不变,提高限流阈值,在增大承载能力的同时,不增加计数器的数量,不需要支付额外开销;而当服务器的业务处理能力为低承载等级时,相比于中承载等级,窗口长度减小,限流阈值不变,在减少服务器资源消耗的同时,减少了服务器的计数器数量,进一步降低了服务器的计数器开销。
本发明实施例提供的技术方案,根据获取到的目标网络请求的请求时间,在判断不存在与目标网络请求匹配的时间窗口时,以目标网络请求的请求时间为时间起点创建时间窗口,进而根据新创建时间窗口的限流阈值,对该时间窗口内的网络请求进行处理,本发明实施例中的时间窗口不在固定的物理时间创建完成,避免了无网络请求下对时间窗口的冗余维护,同时,相比于传统的固定时间窗口,确保了实际响应的网络请求数量不超过服务器的限流阈值,避免了服务器系统故障的发生,相比于传统的滑动时间窗口,极大地减少了请求计数器的数量,减少了占用的服务器计算资源。
本发明实施例可以基于人工智能技术对多个关联业务下的数据文件进行顺序处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
实施例二
图2为本发明实施例二提供的一种基于时间窗口的限流方法的流程图,本实施例在上述技术方案的基础上进行具体化,在本实施例中,预先创建第二时间窗口的后置时间窗口,该方法具体包括:
S210、预先创建所述第二时间窗口的后置时间窗口;其中,所述后置时间窗口与所述第二时间窗口在时间序列上连续,且位于所述第二时间窗口之后。
S220、若在所述后置时间窗口的首个单位时间段内未获取到网络请求,则删除所述后置时间窗口。
S230、若在所述后置时间窗口的首个单位时间段内获取到网络请求,则保留所述后置时间窗口。
具体的,在第二时间窗口中,预先创建时间序列上连续的下一个时间窗口,以在第二时间窗口结束后,且获取到其他网络请求时,避免由于未创建可用的时间窗口,造成该网络请求的响应不及时;同时,在后置时间窗口的首个单位时间段内,如果未获取到任何网络请求,则将该后置时间窗口设定为冗余窗口,删除该冗余窗口,避免在无网络请求时,对时间窗口的冗余维护;如果获取到网络请求,则将后置时间窗口直接作为该网络请求匹配的时间窗口,进而继续统计该时间窗口内的网络请求数量。其中,单位时间段可以根据需要设定,通常远小于窗口长度,以上述技术方案为例,时间窗口的窗口长度均为500ms,单位时间段可以设定为100ms。
可选的,在本发明实施例中,在预先创建所述第二时间窗口的后置时间窗口后,还包括:若在所述后置时间窗口内获取到任意网络请求,则将所述后置时间窗口进行滑动,以将所述任意网络请求的请求时间,作为所述后置时间窗口的窗口起点;若在所述后置时间窗口内未获取到任意网络请求,则删除所述后置时间窗口。具体的,在第二时间窗口中,预先创建时间序列上连续的下一个时间窗口后,如果在后置时间窗口中,获取到了网络请求,将该后置时间窗口进行滑动,以使该后置时间窗口的窗口起点到达网络请求的请求时刻,确保时间窗口与网络请求的请求触发时间保持一致,既确保了对网络请求的及时响应,又充分利用了预先创建的时间窗口,避免了服务器窗口资源的浪费。
本发明实施例提供的技术方案,预先创建第二时间窗口的后置时间窗口,若在后置时间窗口的首个单位时间段内未获取到网络请求,则删除后置时间窗口,若在后置时间窗口的首个单位时间段内获取到网络请求,则保留后置时间窗口,避免了由于未创建可用时间窗口,造成该网络请求响应不及时的现象发生,同时,避免了在无网络请求状态下,对时间窗口的冗余维护。
实施例三
图3为本发明实施例三提供的一种基于时间窗口的限流方法的流程图,本实施例在上述技术方案的基础上进行具体化,在本实施例中,根据所述第二时间窗口的网络请求数量,判断是否符合后置时间窗口的创建规则,该方法具体包括:
S310、获取所述第二时间窗口的网络请求数量;执行S320。
S320、根据所述第二时间窗口的网络请求数量,判断是否符合后置时间窗口的创建规则;若是,执行S330;若否,执行S360。
S330、预先创建所述第二时间窗口的后置时间窗口;执行S340。
S340、若在所述后置时间窗口的首个单位时间段内未获取到网络请求,则删除所述后置时间窗口;执行S350。
S350、若在所述后置时间窗口的首个单位时间段内获取到网络请求,则保留所述后置时间窗口。
S360、不创建所述第二时间窗口的后置时间窗口。
具体的,由于服务器的业务特点,网络请求通常在连续的特定时间段内的请求频率较高,其网络请求的数量,在时间序列上具有连续性的分布特点;即如果第二时间窗口获取到较多次数的网络请求,那么在下一个连续的时间窗口内,较大概率也能获取到较多次数的网络请求,因此,不管是在整个后置时间窗口内,还是在后置时间窗口的首个单位时间段内,都有较大可能性获取到至少一条网络请求,
由此,根据第二时间窗口的网络请求数量,可以预测下一个连续的时间窗口中,或者下一个连续的时间窗口的首个单位时间段中,是否有较大概率获取到至少一条网络请求,由此判断是否预先创建第二时间窗口的后置时间窗口,以确保对获取到的网络请求的及时响应。
特别的,也可以根据历史网络请求记录,获取后置时间窗口的历史同期数据(即网络请求数量),并根据上述历史同期数据决定是否预先创建后置时间窗口,若历史同期的网络请求数量较多,则预先创建第二时间窗口的后置时间窗口,若历史同期的网络请求数量较少,则不创建第二时间窗口的后置时间窗口;还可以根据预先设定的特殊时间段,判断后置时间窗口是否位于该特殊时间段内,例如,将1月1日的0点至1月1日24点为设定的特殊时间段,上述特殊时间段内网络请求数量较多,若后置时间窗口位于上述特殊时间段内,则预先创建第二时间窗口的后置时间窗口;若后置时间窗口不位于上述特殊时间段内,则不创建第二时间窗口的后置时间窗口。
本发明实施例提供的技术方案,根据第二时间窗口的网络请求数量,判断是否符合后置时间窗口的创建规则,并在符合后置时间窗口的创建规则时,预先创建第二时间窗口的后置时间窗口,实现了对下一个连续的时间窗口中是否存在网络请求的准确预测,进一步确保对获网络请求的及时响应,同时在不符合后置时间窗口的创建规则时,不创建第二时间窗口的后置时间窗口,避免了在无网络请求状态下,对时间窗口的冗余维护。
实施例四
图4是本发明实施例四所提供的一种基于时间窗口的限流装置的结构框图,该装置具体包括:第一时间窗口判断模块410、第二时间窗口创建模块420和网络请求处理模块430;
第一时间窗口判断模块410,用于响应于获取到目标网络请求,根据所述目标网络请求的请求时间,判断是否存在与所述目标网络请求匹配的第一时间窗口;
第二时间窗口创建模块420,用于若不存在与所述目标网络请求匹配的第一时间窗口,则创建与所述目标网络请求匹配的第二时间窗口;其中,所述第二时间窗口的时间起点为所述目标网络请求的请求时间;
网络请求处理模块430,用于根据所述第二时间窗口的限流阈值,对所述第二时间窗口内的网络请求进行处理。
本发明实施例提供的技术方案,根据获取到的目标网络请求的请求时间,在判断不存在与目标网络请求匹配的时间窗口时,以目标网络请求的请求时间为时间起点创建时间窗口,进而根据新创建时间窗口的限流阈值,对该时间窗口内的网络请求进行处理,本发明实施例中的时间窗口不在固定的物理时间创建完成,避免了无网络请求下对时间窗口的冗余维护,同时,相比于传统的固定时间窗口,确保了实际响应的网络请求数量不超过服务器的限流阈值,避免了服务器系统故障的发生,相比于传统的滑动时间窗口,极大地减少了请求计数器的数量,减少了占用的服务器计算资源。
可选的,在上述技术方案的基础上,基于时间窗口的限流装置,还包括:
数量更新执行模块,用于若存在与所述目标网络请求匹配的第一时间窗口,则根据所述目标网络请求,更新所述第一时间窗口内的网络请求数量,并判断所述第一时间窗口内的网络请求数量,是否超过所述第一时间窗口的限流阈值;若未超过所述第一时间窗口的限流阈值,则响应所述目标网络请求;若超过所述第一时间窗口的限流阈值,则不响应所述目标网络请求,以及不响应所述第一时间窗口内位于所述目标网络请求之后的其它网络请求。
可选的,在上述技术方案的基础上,第二时间窗口创建模块420,具体包括:
业务承载等级获取单元,用于根据所述目标网络请求的请求时间,获取匹配的业务承载等级;
长度及限流获取单元,用于根据所述业务承载等级,获取匹配的目标窗口长度和目标限流阈值;
窗口创建执行单元,用于根据所述目标网络请求的请求时间、所述目标窗口长度和所述目标限流阈值,创建与所述目标网络请求匹配的第二时间窗口。
可选的,在上述技术方案的基础上,所述业务承载等级包括高承载等级、中承载等级和低承载等级;所述高承载等级的窗口长度等于所述中承载等级的窗口长度,所述高承载等级的限流阈值大于所述中承载等级的限流阈值;所述低承载等级的窗口长度小于所述中承载等级的窗口长度,所述低承载等级的限流阈值等于所述中承载等级的限流阈值。
可选的,在上述技术方案的基础上,基于时间窗口的限流装置,还包括:
后置时间窗口创建模块,用于预先创建所述第二时间窗口的后置时间窗口;其中,所述后置时间窗口与所述第二时间窗口在时间序列上连续,且位于所述第二时间窗口之后;
第一后置时间窗口执行模块,用于若在所述后置时间窗口的首个单位时间段内未获取到网络请求,则删除所述后置时间窗口;若在所述后置时间窗口的首个单位时间段内获取到网络请求,则保留所述后置时间窗口。
可选的,在上述技术方案的基础上,基于时间窗口的限流装置,还包括:
第二后置时间窗口执行模块,用于若在所述后置时间窗口内获取到任意网络请求,则将所述后置时间窗口进行滑动,以将所述任意网络请求的请求时间,作为所述后置时间窗口的窗口起点;若在所述后置时间窗口内未获取到任意网络请求,则删除所述后置时间窗口。
可选的,在上述技术方案的基础上,基于时间窗口的限流装置,还包括:
后置时间窗口判断模块,用于根据所述第二时间窗口的网络请求数量,判断是否符合后置时间窗口的创建规则。
可选的,在上述技术方案的基础上,后置时间窗口创建模块,具体用于若符合后置时间窗口的创建规则,则预先创建所述第二时间窗口的后置时间窗口。
上述装置可执行本发明任意实施例所提供的基于时间窗口的限流方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的方法。
实施例五
图5为本发明实施例五提供的一种服务器的结构示意图。图5示出了适于用来实现本发明实施方式的示例性服务器12的框图。图5显示的服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,服务器12以通用计算设备的形式表现。服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,存储器28,连接不同系统组件(包括存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该服务器12交互的设备通信,和/或与使得该服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的基于时间窗口的限流方法。也即:响应于获取到目标网络请求,根据所述目标网络请求的请求时间,判断是否存在与所述目标网络请求匹配的第一时间窗口;若不存在与所述目标网络请求匹配的第一时间窗口,则创建与所述目标网络请求匹配的第二时间窗口;其中,所述第二时间窗口的时间起点为所述目标网络请求的请求时间;根据所述第二时间窗口的限流阈值,对所述第二时间窗口内的网络请求进行处理。
实施例七
本发明实施例七还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的基于时间窗口的限流方法;该方法包括:
响应于获取到目标网络请求,根据所述目标网络请求的请求时间,判断是否存在与所述目标网络请求匹配的第一时间窗口;
若不存在与所述目标网络请求匹配的第一时间窗口,则创建与所述目标网络请求匹配的第二时间窗口;其中,所述第二时间窗口的时间起点为所述目标网络请求的请求时间;
根据所述第二时间窗口的限流阈值,对所述第二时间窗口内的网络请求进行处理。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种基于时间窗口的限流方法,其特征在于,包括:
响应于获取到目标网络请求,根据所述目标网络请求的请求时间,判断是否存在与所述目标网络请求匹配的第一时间窗口;其中,所述第一时间窗口在服务器启动完成且获取到首个网络请求时创建,或者在前一个时间窗口结束后首次获取到网络请求时创建;
若不存在与所述目标网络请求匹配的第一时间窗口,则创建与所述目标网络请求匹配的第二时间窗口;其中,所述第二时间窗口的时间起点为所述目标网络请求的请求时间;
根据所述第二时间窗口的限流阈值,对所述第二时间窗口内的网络请求进行处理。
2.根据权利要求1所述的方法,其特征在于,在判断是否存在与所述目标网络请求匹配的第一时间窗口后,还包括:
若存在与所述目标网络请求匹配的第一时间窗口,则根据所述目标网络请求,更新所述第一时间窗口内的网络请求数量,并判断所述第一时间窗口内的网络请求数量,是否超过所述第一时间窗口的限流阈值;
若未超过所述第一时间窗口的限流阈值,则响应所述目标网络请求;
若超过所述第一时间窗口的限流阈值,则不响应所述目标网络请求,以及不响应所述第一时间窗口内位于所述目标网络请求之后的其它网络请求。
3.根据权利要求1所述的方法,其特征在于,所述创建与所述目标网络请求匹配的第二时间窗口,包括:
根据所述目标网络请求的请求时间,获取匹配的业务承载等级;
根据所述业务承载等级,获取匹配的目标窗口长度和目标限流阈值;
根据所述目标网络请求的请求时间、所述目标窗口长度和所述目标限流阈值,创建与所述目标网络请求匹配的第二时间窗口。
4.根据权利要求3所述的方法,其特征在于,所述业务承载等级包括高承载等级、中承载等级和低承载等级;
所述高承载等级的窗口长度等于所述中承载等级的窗口长度,所述高承载等级的限流阈值大于所述中承载等级的限流阈值;
所述低承载等级的窗口长度小于所述中承载等级的窗口长度,所述低承载等级的限流阈值等于所述中承载等级的限流阈值。
5.根据权利要求1所述的方法,其特征在于,在创建与所述目标网络请求匹配的第二时间窗口后,还包括:
预先创建所述第二时间窗口的后置时间窗口;其中,所述后置时间窗口与所述第二时间窗口在时间序列上连续,且位于所述第二时间窗口之后;
若在所述后置时间窗口的首个单位时间段内未获取到网络请求,则删除所述后置时间窗口;
若在所述后置时间窗口的首个单位时间段内获取到网络请求,则保留所述后置时间窗口。
6.根据权利要求5所述的方法,其特征在于,在预先创建所述第二时间窗口的后置时间窗口后,还包括:
若在所述后置时间窗口内获取到任意网络请求,则将所述后置时间窗口进行滑动,以将所述任意网络请求的请求时间,作为所述后置时间窗口的窗口起点;
若在所述后置时间窗口内未获取到任意网络请求,则删除所述后置时间窗口。
7.根据权利要求5所述的方法,其特征在于,在预先创建所述第二时间窗口的后置时间窗口前,还包括:
根据所述第二时间窗口的网络请求数量,判断是否符合后置时间窗口的创建规则;
所述预先创建所述第二时间窗口的后置时间窗口,包括:
若符合后置时间窗口的创建规则,则预先创建所述第二时间窗口的后置时间窗口。
8.一种基于时间窗口的限流装置,其特征在于,包括:
第一时间窗口判断模块,用于响应于获取到目标网络请求,根据所述目标网络请求的请求时间,判断是否存在与所述目标网络请求匹配的第一时间窗口;其中,所述第一时间窗口在服务器启动完成且获取到首个网络请求时创建,或者在前一个时间窗口结束后首次获取到网络请求时创建;
第二时间窗口创建模块,用于若不存在与所述目标网络请求匹配的第一时间窗口,则创建与所述目标网络请求匹配的第二时间窗口;其中,所述第二时间窗口的时间起点为所述目标网络请求的请求时间;
网络请求处理模块,用于根据所述第二时间窗口的限流阈值,对所述第二时间窗口内的网络请求进行处理。
9.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的基于时间窗口的限流方法。
10.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一所述的基于时间窗口的限流方法。
CN202210440243.1A 2022-04-25 2022-04-25 基于时间窗口的限流方法、装置、服务器和存储介质 Active CN115174483B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210440243.1A CN115174483B (zh) 2022-04-25 2022-04-25 基于时间窗口的限流方法、装置、服务器和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210440243.1A CN115174483B (zh) 2022-04-25 2022-04-25 基于时间窗口的限流方法、装置、服务器和存储介质

Publications (2)

Publication Number Publication Date
CN115174483A CN115174483A (zh) 2022-10-11
CN115174483B true CN115174483B (zh) 2023-10-13

Family

ID=83484191

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210440243.1A Active CN115174483B (zh) 2022-04-25 2022-04-25 基于时间窗口的限流方法、装置、服务器和存储介质

Country Status (1)

Country Link
CN (1) CN115174483B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103197842A (zh) * 2013-04-15 2013-07-10 广州博冠信息科技有限公司 一种应用程序窗口的控制方法及装置
CN109981479A (zh) * 2019-02-27 2019-07-05 西安微电子技术研究所 一种面向prp网络的单窗口动态滑动与冗余管理系统和方法
CN110971488A (zh) * 2019-11-27 2020-04-07 软通动力信息技术有限公司 一种数据处理方法、装置、服务器和存储介质
CN111258754A (zh) * 2020-01-09 2020-06-09 上海依图信息技术有限公司 一种基于时间窗口的资源处理方法、装置、介质以及系统
CN112367269A (zh) * 2020-10-30 2021-02-12 深圳壹账通智能科技有限公司 基于双指针的滑动窗口限流方法、装置、设备及存储介质
CN113645310A (zh) * 2021-08-20 2021-11-12 北京高途云集教育科技有限公司 一种数据限流方法、装置、电子设备及可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8767546B2 (en) * 2012-03-06 2014-07-01 Itron, Inc. Traffic load and transmission retry management
KR101998303B1 (ko) * 2015-12-08 2019-10-01 네이버 주식회사 타임머신 기능을 위한 슬라이딩 윈도우 관리 방법 및 시스템
US10581745B2 (en) * 2017-12-11 2020-03-03 International Business Machines Corporation Dynamic throttling thresholds

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103197842A (zh) * 2013-04-15 2013-07-10 广州博冠信息科技有限公司 一种应用程序窗口的控制方法及装置
CN109981479A (zh) * 2019-02-27 2019-07-05 西安微电子技术研究所 一种面向prp网络的单窗口动态滑动与冗余管理系统和方法
CN110971488A (zh) * 2019-11-27 2020-04-07 软通动力信息技术有限公司 一种数据处理方法、装置、服务器和存储介质
CN111258754A (zh) * 2020-01-09 2020-06-09 上海依图信息技术有限公司 一种基于时间窗口的资源处理方法、装置、介质以及系统
CN112367269A (zh) * 2020-10-30 2021-02-12 深圳壹账通智能科技有限公司 基于双指针的滑动窗口限流方法、装置、设备及存储介质
CN113645310A (zh) * 2021-08-20 2021-11-12 北京高途云集教育科技有限公司 一种数据限流方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN115174483A (zh) 2022-10-11

Similar Documents

Publication Publication Date Title
CN111159436B (zh) 一种推荐多媒体内容的方法、装置及计算设备
CN109840142B (zh) 基于云监控的线程控制方法、装置、电子设备及存储介质
CN109857556B (zh) 内存回收方法及装置、存储介质和电子设备
CN110196770B (zh) 云系统内存数据处理方法、装置、设备及存储介质
CN109726076B (zh) 一种小程序生命周期管理方法和系统
CN111796824A (zh) 页面加载方法、装置、服务器及介质
CN109582649B (zh) 一种元数据存储方法、装置、设备及可读存储介质
CN113190503B (zh) 文件系统扩容方法、装置、电子设备及存储介质
CN109840141B (zh) 基于云监控的线程控制方法、装置、电子设备及存储介质
CN112667405B (zh) 信息处理方法、装置、设备及存储介质
CN110888668A (zh) 一种模型更新的系统、方法、装置、终端设备和介质
CN114490078A (zh) 一种微服务的动态缩扩容方法、装置及设备
CN112579692A (zh) 一种数据同步方法、装置、系统、设备及存储介质
CN112540731A (zh) 数据的追加写方法、装置、设备、介质和程序产品
CN115827162A (zh) 一种智能化处理镜像仓库数据方法、装置、介质及设备
CN112650449B (zh) 缓存空间的释放方法、释放系统、电子设备及存储介质
CN114911617A (zh) 一种资源配置方法、装置、设备和介质
CN113553216A (zh) 数据恢复方法、装置、电子设备及存储介质
CN115174483B (zh) 基于时间窗口的限流方法、装置、服务器和存储介质
CN111736975A (zh) 请求控制方法、装置、计算机设备及计算机可读存储介质
CN113285890B (zh) 网关流量的分配方法、装置、电子设备及存储介质
CN115437572A (zh) 一种数据落盘方法、装置、设备及介质
CN116339872A (zh) 基于滑动窗口的数据处理方法、流处理系统、介质与设备
CN112905119A (zh) 一种分布式存储系统的数据写入控制方法、装置及设备
CN111090633A (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