CN112527524A - 动态限流方法、装置以及电子设备 - Google Patents

动态限流方法、装置以及电子设备 Download PDF

Info

Publication number
CN112527524A
CN112527524A CN202011447522.8A CN202011447522A CN112527524A CN 112527524 A CN112527524 A CN 112527524A CN 202011447522 A CN202011447522 A CN 202011447522A CN 112527524 A CN112527524 A CN 112527524A
Authority
CN
China
Prior art keywords
request message
forwarding
target
request
messages
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.)
Pending
Application number
CN202011447522.8A
Other languages
English (en)
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202011447522.8A priority Critical patent/CN112527524A/zh
Publication of CN112527524A publication Critical patent/CN112527524A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/547Messaging middleware

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开涉及一种动态限流方法、装置以及电子设备,涉及数据处理技术领域,可用于云计算和云领域。具体实现方案为:在限流机制被触发的情况下,将请求消息转发服务接收到的第一请求消息集中的第一目标请求消息进行转发,第一目标请求消息为:第一请求消息集除去第一数量的请求消息后剩余的请求消息;若请求消息转发服务满足预设条件,则将请求消息转发服务接收到的第二请求消息集中的第二目标请求消息进行转发,第二目标请求消息为:第二请求消息集除去第二数量的请求消息后剩余的请求消息,第二数量大于第一数量。上述方法可以动态调整不转发(即丢弃)的请求消息的数量,提高请求消息丢弃数值设置的灵活性和自适应性。

Description

动态限流方法、装置以及电子设备
技术领域
本公开涉及计算机技术中的微服务领域,尤其涉及一种动态限流方法、装置以及电子设备。
背景技术
随着微服务的兴起,一个单体化服务被拆分成多个微服务,而微服务之间的通信是基于基础中间件,例如服务网格(service mesh),可保障高可靠性,基础中间件可将上游的请求转发给下游。
发明内容
本公开提供了一种动态限流方法、装置以及电子设备。
根据本公开的第一方面,提供了一种动态限流方法,包括:
在限流机制被触发的情况下,将请求消息转发服务接收到的第一请求消息集中的第一目标请求消息进行转发,所述第一目标请求消息为:所述第一请求消息集除去第一数量的请求消息后剩余的请求消息;
若所述请求消息转发服务满足预设条件,则将所述请求消息转发服务接收到的第二请求消息集中的第二目标请求消息进行转发,所述第二目标请求消息为:所述第二请求消息集除去第二数量的请求消息后剩余的请求消息,所述第二数量大于所述第一数量。
根据本公开的第二方面,提供了一种动态限流装置,包括:
第一转发模块,用于在限流机制被触发的情况下,将请求消息转发服务接收到的第一请求消息集中的第一目标请求消息进行转发;
第二转发模块,用于若所述请求消息转发服务满足预设条件,则将所述请求消息转发服务接收到的第二请求消息集中的第二目标请求消息进行转发,所述第二数量大于所述第一数量。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面所述的方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据第一方面所述的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开实施例提供的动态限流方法的一流程图;
图2是本公开实施例提供的动态限流方法的另一流程图;
图3是本公开实施例提供的动态限流装置的结构图;
图4是用来实现本公开实施例的动态限流方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
参见图1,图1是本公开实施例提供的动态限流方法的流程图,如图1所示,本实施例提供一种动态限流方法,应用于电子设备,包括以下步骤:
步骤101、在限流机制被触发的情况下,将请求消息转发服务接收到的第一请求消息集中的第一目标请求消息进行转发,所述第一目标请求消息为:所述第一请求消息集除去第一数量的请求消息后剩余的请求消息。
电子设备可为服务器或中间件,服务器或中间件用于转发接收到的请求消息,例如,将第一设备发送的消息转发给第二设备。限流机制也可称为为熔断机制,限流机制被触发时,电子设备开启限流策略,即开始执行本公开提供的动态限流方法。限流机制被触发的条件可以是根据电子设备转发请求消息的转发成功率,或者转发失败率是否大于熔断阈值,或者采用其他条件,具体可根据实际情况进行设置,本公开不做限定。
第一请求消息集为所述电子设备当前(即限流机制被触发的情况下)接收到的且未转发的请求消息集合。第一数量也可根据实际情况进行设置,例如10条或20条,本公开不做限定。
步骤102、若所述请求消息转发服务满足预设条件,则将所述请求消息转发服务接收到的第二请求消息集中的第二目标请求消息进行转发,所述第二目标请求消息为:所述第二请求消息集除去第二数量的请求消息后剩余的请求消息,所述第二数量大于所述第一数量。
第二请求消息集为所述电子设备当前(即请求消息转发服务满足预设条件的情况下)接收到的且未转发的请求消息集合。
请求消息转发服务可以是请求消息的转发成功率,或者转发失败率或者其他条件,预设条件可以预先设置,例如,转发成功率大于预设阈值或者小于预设阈值,或者转发失败率大于预设阈值或者小于预设阈值等等。预设条件为需要达到的目标,若请求消息转发服务满足预设条件,说明需要继续降低转发到下游的请求消息的数量,增加丢弃的请求消息的数量。
丢弃的请求消息可以理解为不被转发的请求消息,不被转发的请求消息随机确定。第二数量也可根据实际情况进行设置,例如10条或20条,本公开不做限定。
进一步的,若所述请求消息转发服务仍旧满足预设条件,则在第二数量的基础上增加更多丢弃的请求消息的数量,以此类推,直到请求消息转发服务不满足预设条件。
本实施例中,在限流机制被触发的情况下,将请求消息转发服务接收到的第一请求消息集中的第一目标请求消息进行转发,所述第一目标请求消息为:所述第一请求消息集除去第一数量的请求消息后剩余的请求消息;若所述请求消息转发服务满足预设条件,则将所述请求消息转发服务接收到的第二请求消息集中的第二目标请求消息进行转发,所述第二目标请求消息为:所述第二请求消息集除去第二数量的请求消息后剩余的请求消息,所述第二数量大于所述第一数量。上述方法可以动态调整不转发(即丢弃)的请求消息的数量,提高请求消息丢弃数值设置的灵活性和自适应性。
上述中,在步骤101、在限流机制被触发的情况下,将请求消息转发服务接收到的第一请求消息集中的第一目标请求消息进行转发之后,在步骤102、若所述请求消息转发服务满足预设条件,则将所述请求消息转发服务接收到的第二请求消息集中的第二目标请求消息进行转发之前,还包括:
统计所述第一请求消息集中所述第一目标请求消息的转发成功率;
步骤102、若所述请求消息转发服务满足预设条件,则将所述请求消息转发服务接收到的第二请求消息集中的第二目标请求消息进行转发,包括:
若所述转发成功率小于第一预设阈值,则将所述请求消息转发服务接收到的所述第二请求消息集中的所述第二目标请求消息进行转发。
本实施例中,请求消息转发服务可以第一目标请求消息的转发成功率为判定依据,第一预设阈值可根据实际情况进行设置,例如,第一预设阈值可为85%或者90%,在此不做限定。预设条件为第一目标请求消息的转发成功率小于第一预设阈值,在请求消息转发服务满足预设条件的情况下,增加丢弃的请求消息的数量,即确定所述第二数量,根据对第二数量对第二请求消息集中的请求消息进行转发,第二数量大于第一数量。进一步的,第二数量与第一数量的差值可为预设差值,即在增加丢弃的请求消息的数量时,每次增加的数量相同,例如,每次增加10%,或者每次增加20条,在此不做限定。
上述中,若第一目标请求消息的转发成功率小于第一预设阈值,说明需要继续降低转发到下游的请求消息的数量,即增加丢弃的请求消息的数量,以降低下游的过载。
上述中,所述统计所述第一请求消息集中所述第一目标请求消息的转发成功率,包括:
接收所述第一目标请求消息中第一请求消息的响应消息;
统计所述第一请求消息的数量;
根据第一请求消息的数量和所述第一目标请求消息的数量,确定所述转发成功率。
具体的,电子设备转发到下游的第一目标请求消息,若转发成功,会收到下游反馈的响应消息,若电子设备接收到响应消息,则表明该条第一目标请求消息转发成功。基于此,可根据接收到的第一请求消息的响应消息的数值,来确定转发成功的请求消息的数量,然后根据第一请求消息的数量在第一目标请求消息的数量中的占比,确定转发成功率。其中,第一请求消息为第一目标请求消息中收到响应消息的消息。
进一步的,可统计预设时间段内,例如2秒或者5秒,第一目标请求消息的数量,以及第一请求消息的数量,确定该预设时间段内的转发成功率。
本实施例中,通过转发成功的请求消息(即第一请求消息)的数量和第一目标请求消息的数量来确定转发成功率,即根据实际的转发情况来确定转发成功率,便于动态调整丢弃的请求消息的数量,提高请求消息丢弃数量设置的灵活性和自适应性。
上述中,在步骤101、在限流机制被触发的情况下,将请求消息转发服务接收到的第一请求消息集中的第一目标请求消息进行转发之后,还包括如下:
若所述请求消息转发服务不满足预设条件,且所述第一数量大于第二预设阈值,则将所述请求消息转发服务接收到的第三请求消息集中的第三目标请求消息进行转发,所述第三目标请求消息为:所述第三请求消息集除去第三数量的请求消息后剩余的请求消息,所述第三数量小于所述第一数量。
预设条件为转发成功率小于第一预设阈值,第一预设阈值可根据实际情况进行设置,例如,第一预设阈值可为85%或者90%,在此不做限定。
在请求消息转发服务不满足预设条件的情况下,例如,转发成功率大于或等于85%的情况下,且第一数量大于第二预设阈值的情况下,减小丢弃的请求消息的数量,即确定随机丢弃的请求消息的第三数量,第三数量小于第一数量。进一步的,第三数量与第一数量的差值可为预设差值。即在减少丢弃的请求消息的数量时,每次减少的数量相同,例如,每次减少10%,或者每次减少20条,在此不做限定。第二预设阈值也可根据实际情况进行设置,例如0。
若第一目标请求消息的转发成功率大于或等于第一预设阈值,说明可增加转发到下游的请求消息的数量,即减少丢弃的请求消息的数量,转发尽可能多的请求消息,提高电子设备的转发性能。
上述中,在限流机制被触发的情况下,将请求消息转发服务接收到的第一请求消息集中的第一目标请求消息进行转发之后,还包括:
若所述消息转发服务不满足预设条件,且所述第一数量小于或等于第二预设阈值,则取消所述限流机制。
具体的,预设条件为转发成功率小于第一预设阈值,第一预设阈值可根据实际情况进行设置,例如,第一预设阈值可为85%或者90%,在此不做限定。
在请求消息转发服务不满足预设条件的情况下,例如,转发成功率大于或等于85%的情况下,且第一数量小于或等于第二预设阈值的情况下,说明电子设备的请求消息转发服务已经恢复,下游过载情况好转,此时取消限流机制,电子设备恢复对请求消息进行正常转发。
本实施例中,若所述消息转发服务不满足预设条件,且所述第一数量小于或等于第二预设阈值,则取消所述限流机制。即在判定电子设备的请求信息转发服务恢复时,取消限流机制,可提高电子设备的转发性能。
如图2所示为本公开实施例提供的动态限流方法的另一流程示意图,如图2所示,动态限流方法包括:
步骤21,触发熔断机制(即限流机制);
步骤22,执行熔断限流(即动态限流策略),即随机丢弃X%的请求消息,该步骤可理解为从接收到的请求消息中选择(1-X%)的请求消息进行转发,X为大于0小于100的数;
步骤23,检测N次(或条)转发的请求消息的转发成功率,根据转发成功率来判断请求消息转发服务是否恢复;
步骤24,判断请求消息转发服务是否恢复,例如,转发成功率大于或等于第一预设阈值为恢复,转发成功率小于第一预设阈值为未恢复;若未恢复,转步骤25执行,若恢复,转步骤26执行;
步骤25,增加丢弃比例,即在X的基础上增加预设值,并转步骤22执行;
步骤26,判断X是否为0,若为0,执行步骤27;若不为0,执行步骤28;
步骤27,取消熔断;
步骤28,减少丢弃比例,即在X的基础上减少预设值,并转步骤22执行。
上述动态限流方法,通过自适应动态调整限流的比例,保障了下游不会持续处于过载状态,避免了下游持续处于过载雪崩状态,具备自愈能力。
参见图3,图3是本公开实施例提供的动态限流装置的结构图,如图3所示,本实施例提供一种动态限流装置300,包括:
第一转发模块301,用于在限流机制被触发的情况下,将请求消息转发服务接收到的第一请求消息集中的第一目标请求消息进行转发,所述第一目标请求消息为:所述第一请求消息集除去第一数量的请求消息后剩余的请求消息;
第二转发模块302,用于若所述请求消息转发服务满足预设条件,则将所述请求消息转发服务接收到的第二请求消息集中的第二目标请求消息进行转发,所述第二目标请求消息为:所述第二请求消息集除去第二数量的请求消息后剩余的请求消息,所述第二数量大于所述第一数量。
进一步的,动态限流装置300还包括:
统计模块,用于统计所述第一请求消息集中所述第一目标请求消息的转发成功率;
所述第二转发模块,用于若所述转发成功率小于第一预设阈值,则将所述请求消息转发服务接收到的所述第二请求消息集中的所述第二目标请求消息进行转发。
进一步的,所述统计模块,包括:
接收子模块,用于接收所述第一目标请求消息中第一请求消息的响应消息;
统计子模块,用于统计所述第一请求消息的数量;
确定子模块,用于根据第一请求消息的数量和所述第一目标请求消息的数量,确定所述转发成功率。
进一步的,动态限流装置300还包括:
第三转发模块,用于若所述请求消息转发服务不满足预设条件,且所述第一数量大于第二预设阈值,则将所述请求消息转发服务接收到的第三请求消息集中的第三目标请求消息进行转发,所述第三目标请求消息为:所述第三请求消息集除去第三数量的请求消息后剩余的请求消息,所述第三数量小于所述第一数量。
进一步的,动态限流装置300还包括:
取消模块,用于若所述消息转发服务不满足预设条件,且所述第一数量小于或等于第二预设阈值,则取消所述限流机制。
本公开实施例的动态限流装置300,在限流机制被触发的情况下,将请求消息转发服务接收到的第一请求消息集中的第一目标请求消息进行转发,所述第一目标请求消息为:所述第一请求消息集除去第一数量的请求消息后剩余的请求消息;若所述请求消息转发服务满足预设条件,则将所述请求消息转发服务接收到的第二请求消息集中的第二目标请求消息进行转发,所述第二目标请求消息为:所述第二请求消息集除去第二数量的请求消息后剩余的请求消息,所述第二数量大于所述第一数量。上述方法可以动态调整不转发(即丢弃)的请求消息的数量,提高请求消息丢弃数值设置的灵活性和自适应性。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
如图4所示,是根据本公开实施例的动态限流的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图4所示,该电子设备包括:一个或多个处理器501、存储器502,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图4中以一个处理器501为例。
存储器502即为本公开所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本公开所提供的动态限流的方法。本公开的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本公开所提供的动态限流的方法。
存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本公开实施例中的动态限流的方法对应的程序指令/模块(例如,附图3所示的第一转发模块301、第二转发模块302)。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的动态限流的方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据动态限流的电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至动态限流的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
动态限流的方法的电子设备还可以包括:输入装置503和输出装置504。处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图4中以通过总线连接为例。
输入装置503可接收输入的数字或字符信息,以及产生与动态限流的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置504可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互,服务器可以为分布式***的服务器,或者是结合了区块链的服务器。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本公开中,在限流机制被触发的情况下,将请求消息转发服务接收到的第一请求消息集中的第一目标请求消息进行转发,所述第一目标请求消息为:所述第一请求消息集除去第一数量的请求消息后剩余的请求消息;若所述请求消息转发服务满足预设条件,则将所述请求消息转发服务接收到的第二请求消息集中的第二目标请求消息进行转发,所述第二目标请求消息为:所述第二请求消息集除去第二数量的请求消息后剩余的请求消息,所述第二数量大于所述第一数量。上述方法可以动态调整不转发(即丢弃)的请求消息的数量,提高请求消息丢弃数值设置的灵活性和自适应性。
若第一目标请求消息的转发成功率小于第一预设阈值,说明需要继续降低转发到下游的请求消息的数量,即增加丢弃的请求消息的数量,以降低下游的过载。
通过转发成功的请求消息(即第一请求消息)的数量和第一目标请求消息的数量来确定转发成功率,即根据实际的转发情况来确定转发成功率,便于动态调整丢弃的请求消息的数量,提高请求消息丢弃数量设置的灵活性和自适应性。
若第一目标请求消息的转发成功率大于或等于第一预设阈值,说明可增加转发到下游的请求消息的数量,即减少丢弃的请求消息的数量,转发尽可能多的请求消息,提高电子设备的转发性能。
若所述消息转发服务不满足预设条件,且所述第一数量小于或等于第二预设阈值,则取消所述限流机制。即在判定电子设备的请求信息转发服务恢复时,取消限流机制,可提高电子设备的转发性能。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (13)

1.一种动态限流方法,包括:
在限流机制被触发的情况下,将请求消息转发服务接收到的第一请求消息集中的第一目标请求消息进行转发,所述第一目标请求消息为:所述第一请求消息集除去第一数量的请求消息后剩余的请求消息;
若所述请求消息转发服务满足预设条件,则将所述请求消息转发服务接收到的第二请求消息集中的第二目标请求消息进行转发,所述第二目标请求消息为:所述第二请求消息集除去第二数量的请求消息后剩余的请求消息,所述第二数量大于所述第一数量。
2.根据权利要求1所述的方法,其中,在所述在限流机制被触发的情况下,将请求消息转发服务接收到的第一请求消息集中的第一目标请求消息进行转发之后,在所述若所述请求消息转发服务满足预设条件,则将所述请求消息转发服务接收到的第二请求消息集中的第二目标请求消息进行转发之前,还包括:
统计所述第一请求消息集中所述第一目标请求消息的转发成功率;
所述若所述请求消息转发服务满足预设条件,则将所述请求消息转发服务接收到的第二请求消息集中的第二目标请求消息进行转发,包括:
若所述转发成功率小于第一预设阈值,则将所述请求消息转发服务接收到的所述第二请求消息集中的所述第二目标请求消息进行转发。
3.根据权利要求2所述的方法,其中,所述统计所述第一请求消息集中所述第一目标请求消息的转发成功率,包括:
接收所述第一目标请求消息中第一请求消息的响应消息;
统计所述第一请求消息的数量;
根据第一请求消息的数量和所述第一目标请求消息的数量,确定所述转发成功率。
4.根据权利要求1所述的方法,其中,所述在限流机制被触发的情况下,将请求消息转发服务接收到的第一请求消息集中的第一目标请求消息进行转发之后,还包括:
若所述请求消息转发服务不满足预设条件,且所述第一数量大于第二预设阈值,则将所述请求消息转发服务接收到的第三请求消息集中的第三目标请求消息进行转发,所述第三目标请求消息为:所述第三请求消息集除去第三数量的请求消息后剩余的请求消息,所述第三数量小于所述第一数量。
5.根据权利要求4所述的方法,其中,所述在限流机制被触发的情况下,将请求消息转发服务接收到的第一请求消息集中的第一目标请求消息进行转发之后,还包括:
若所述消息转发服务不满足预设条件,且所述第一数量小于或等于第二预设阈值,则取消所述限流机制。
6.一种动态限流装置,包括:
第一转发模块,用于在限流机制被触发的情况下,将请求消息转发服务接收到的第一请求消息集中的第一目标请求消息进行转发,所述第一目标请求消息为:所述第一请求消息集除去第一数量的请求消息后剩余的请求消息;
第二转发模块,用于若所述请求消息转发服务满足预设条件,则将所述请求消息转发服务接收到的第二请求消息集中的第二目标请求消息进行转发,所述第二目标请求消息为:所述第二请求消息集除去第二数量的请求消息后剩余的请求消息,所述第二数量大于所述第一数量。
7.根据权利要求6所述的装置,其中,还包括:
统计模块,用于统计所述第一请求消息集中所述第一目标请求消息的转发成功率;
所述第二转发模块,用于若所述转发成功率小于第一预设阈值,则将所述请求消息转发服务接收到的所述第二请求消息集中的所述第二目标请求消息进行转发。
8.根据权利要求7所述的装置,其中,所述统计模块,包括:
接收子模块,用于接收所述第一目标请求消息中第一请求消息的响应消息;
统计子模块,用于统计所述第一请求消息的数量;
确定子模块,用于根据第一请求消息的数量和所述第一目标请求消息的数量,确定所述转发成功率。
9.根据权利要求6所述的装置,其中,还包括:
第三转发模块,用于若所述请求消息转发服务不满足预设条件,且所述第一数量大于第二预设阈值,则将所述请求消息转发服务接收到的第三请求消息集中的第三目标请求消息进行转发,所述第三目标请求消息为:所述第三请求消息集除去第三数量的请求消息后剩余的请求消息,所述第三数量小于所述第一数量。
10.根据权利要求9所述的装置,其中,还包括:
取消模块,用于若所述消息转发服务不满足预设条件,且所述第一数量小于或等于第二预设阈值,则取消所述限流机制。
11.一种电子设备,其中,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-5中任一项所述的方法。
13.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-5中任一项所述的方法。
CN202011447522.8A 2020-12-09 2020-12-09 动态限流方法、装置以及电子设备 Pending CN112527524A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011447522.8A CN112527524A (zh) 2020-12-09 2020-12-09 动态限流方法、装置以及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011447522.8A CN112527524A (zh) 2020-12-09 2020-12-09 动态限流方法、装置以及电子设备

Publications (1)

Publication Number Publication Date
CN112527524A true CN112527524A (zh) 2021-03-19

Family

ID=75000480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011447522.8A Pending CN112527524A (zh) 2020-12-09 2020-12-09 动态限流方法、装置以及电子设备

Country Status (1)

Country Link
CN (1) CN112527524A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1937587A (zh) * 2006-09-07 2007-03-28 华为技术有限公司 一种实现业务流量控制的方法及***
CN107995127A (zh) * 2017-12-13 2018-05-04 深圳乐信软件技术有限公司 一种过载保护方法及装置
CN110120973A (zh) * 2019-04-28 2019-08-13 华为技术有限公司 一种请求控制方法、相关设备及计算机存储介质
CN110297698A (zh) * 2018-03-22 2019-10-01 财付通支付科技有限公司 一种多优先级动态限流方法、装置、服务器及存储介质
CN110351200A (zh) * 2019-08-16 2019-10-18 东北大学秦皇岛分校 一种基于转发任务迁移的机会网络拥塞控制方法
CN111290696A (zh) * 2020-02-26 2020-06-16 平安银行股份有限公司 一种应用程序组件的流控方法及装置
CN111324471A (zh) * 2020-01-22 2020-06-23 远景智能国际私人投资有限公司 服务调整方法、装置、设备及存储介质
CN111782259A (zh) * 2020-06-24 2020-10-16 北京计算机技术及应用研究所 一种基于反向代理的微服务治理方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1937587A (zh) * 2006-09-07 2007-03-28 华为技术有限公司 一种实现业务流量控制的方法及***
CN107995127A (zh) * 2017-12-13 2018-05-04 深圳乐信软件技术有限公司 一种过载保护方法及装置
CN110297698A (zh) * 2018-03-22 2019-10-01 财付通支付科技有限公司 一种多优先级动态限流方法、装置、服务器及存储介质
CN110120973A (zh) * 2019-04-28 2019-08-13 华为技术有限公司 一种请求控制方法、相关设备及计算机存储介质
CN110351200A (zh) * 2019-08-16 2019-10-18 东北大学秦皇岛分校 一种基于转发任务迁移的机会网络拥塞控制方法
CN111324471A (zh) * 2020-01-22 2020-06-23 远景智能国际私人投资有限公司 服务调整方法、装置、设备及存储介质
CN111290696A (zh) * 2020-02-26 2020-06-16 平安银行股份有限公司 一种应用程序组件的流控方法及装置
CN111782259A (zh) * 2020-06-24 2020-10-16 北京计算机技术及应用研究所 一种基于反向代理的微服务治理方法

Similar Documents

Publication Publication Date Title
CN111461290B (zh) 模型参数更新方法及装置
CN111669438B (zh) 直播消息传输方法、装置、电子设备及介质
CN112181683A (zh) 消息中间件的并发消费方法以及装置
CN114356547B (zh) 基于处理器虚拟化环境的低优阻塞方法及装置
CN111865720B (zh) 用于处理请求的方法、装置、设备以及存储介质
CN111880914A (zh) 资源调度方法、资源调度装置、电子设备和存储介质
CN111459645B (zh) 一种任务调度方法、装置和电子设备
CN112311597B (zh) 消息推送方法和装置
CN110716959A (zh) 流式数据处理方法、装置、电子设备及存储介质
CN111858030A (zh) 作业的资源处理方法、装置、电子设备及可读存储介质
CN110659184B (zh) 健康状态检查方法、装置及***
CN110958250A (zh) 一种端口监控方法、装置和电子设备
CN111881339A (zh) 资源信息的推送、通知方法、装置、电子设备及存储介质
CN114217996A (zh) 混音方法和装置
CN112351042B (zh) 攻击流量计算方法、装置、电子设备和存储介质
CN111698243B (zh) 参数配置方法、装置、电子设备和存储介质
CN112527524A (zh) 动态限流方法、装置以及电子设备
KR102571517B1 (ko) 트래픽 조정 방법 및 장치
CN113655906A (zh) 折叠屏控制方法和装置
CN111338937A (zh) 一种对小程序干预下线的方法、装置、设备和介质
CN112202692A (zh) 数据分发方法、装置、设备以及存储介质
CN111405051B (zh) 应用程序编程接口api信息的处理方法、装置和设备
CN115277713B (zh) 负载均衡方法和装置
CN112527234B (zh) 音频帧的输出方法和装置
CN112738567B (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