CN113315718A - 自适应限流的系统、方法和装置 - Google Patents

自适应限流的系统、方法和装置 Download PDF

Info

Publication number
CN113315718A
CN113315718A CN202110352749.2A CN202110352749A CN113315718A CN 113315718 A CN113315718 A CN 113315718A CN 202110352749 A CN202110352749 A CN 202110352749A CN 113315718 A CN113315718 A CN 113315718A
Authority
CN
China
Prior art keywords
container
index
queue
service
preset value
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.)
Granted
Application number
CN202110352749.2A
Other languages
English (en)
Other versions
CN113315718B (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.)
Alibaba Innovation Co
Original Assignee
Alibaba Singapore Holdings Pte 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 Alibaba Singapore Holdings Pte Ltd filed Critical Alibaba Singapore Holdings Pte Ltd
Priority to CN202110352749.2A priority Critical patent/CN113315718B/zh
Publication of CN113315718A publication Critical patent/CN113315718A/zh
Application granted granted Critical
Publication of CN113315718B publication Critical patent/CN113315718B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种自适应限流的系统、方法和装置。其中,该系统包括:网关,用于接收请求消息,并将请求消息发送至队列容器;队列容器,用于接收并转发网关发送的请求消息;业务容器,用于接收队列容器转发的请求消息,并执行对应的处理操作;控制器,用于依据业务容器反馈的性能指标或队列容器反馈的信息量指标,控制队列容器转发至业务容器的请求消息的数量。本发明解决了由于相关技术在限流上往往是通过静态设置限流策略实现限流,导致的无法满足实际业务的需求的技术问题。

Description

自适应限流的系统、方法和装置
技术领域
本发明涉及互联网技术领域,具体而言,涉及一种自适应限流的系统、方法和装置。
背景技术
在Serverless(无服务器架构)场景下,服务端会按需分配资源,可以根据流量请求、CPU指标等进行自动扩缩容,以满足在不同的负载下资源分配。与此同时在Serverless场景下往往伴随流量请求、负载指标的不确定性,而传统的静态设置限流策略的方式往往不能满足实际业务的需求。
针对上述由于相关技术在限流上往往是通过静态设置限流策略实现限流,导致的无法满足实际业务的需求的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种自适应限流的系统、方法和装置,以至少解决由于相关技术在限流上往往是通过静态设置限流策略实现限流,导致的无法满足实际业务的需求的技术问题。
根据本发明实施例的一个方面,提供了一种自适应限流的系统,包括:网关、队列容器、业务容器和控制器,其中,网关,用于接收请求消息,并将请求消息发送至队列容器;队列容器,用于接收并转发网关发送的请求消息;业务容器,用于接收队列容器转发的请求消息,并执行对应的处理操作;控制器,用于依据业务容器反馈的性能指标或队列容器反馈的信息量指标,控制队列容器转发至业务容器的请求消息的数量。
可选的,队列容器包括:调节模块,其中,调节模块,用于接收控制器发送的调整指令,并依据调整指令通过调节请求队列窗口的大小,控制进入业务容器的请求消息的数量。
进一步地,可选的,请求队列窗口包括:第一调节模块,用于在业务容器的性能指标或队列容器的信息量指标大于或等于第一预设值的情况下,减少进入业务容器的请求消息的数量;第二调节模块,用于在业务容器的性能指标或队列容器的信息量指标小于或等于第二预设值的情况下,增加进入业务容器的请求消息的数量;第三调节模块,用于在业务容器的性能指标或队列容器的信息量指标大于第二预设值,小于第一预设值的情况下,依据预设策略调整进入业务容器的请求消息的数量。
可选的,预设策略为维持当前进入业务容器的请求消息的数量。
可选的,队列容器,还用于将接收到的请求消息进行排队。
可选的,业务容器的性能指标包括:第一类弹性指标;第一类弹性指标包括:处理器指标和存储器指标;或,队列容器的信息量指标包括:第二类弹性指标;第二类弹性指标包括:并发请求指标。
根据本发明实施例的另一方面,还提供了一种自适应限流的方法,包括:接收业务容器反馈的性能指标或队列容器反馈的信息量指标;判断业务容器的性能指标或队列容器的信息量指标是否大于预设值;依据判断结果控制队列容器转发至业务容器的请求消息的数量。
可选的,业务容器的性能指标包括:第一类弹性指标;第一类弹性指标包括:处理器指标和存储器指标;或,队列容器的信息量指标包括:第二类弹性指标;第二类弹性指标包括:并发请求指标。
进一步地,可选的,判断业务容器的性能指标或队列容器的信息量指标是否大于预设值包括:在业务容器的性能指标为第一类弹性指标的情况下,判断业务容器中的处理器指标和存储器指标是否大于预设值。
可选的,判断业务容器的性能指标或队列容器的信息量指标是否大于预设值包括:在队列容器的信息量指标为第二类弹性指标的情况下,判断队列容器中的并发请求指标是否大于预设值。
可选的,依据判断结果控制队列容器转发至业务容器的请求消息的数量包括:在预设值包括第一预设值和第二预设值,且第一预设值大于第二预设值的情况下,当业务容器的性能指标或队列容器的信息量指标大于或等于第一预设值时,控制队列容器中的请求队列窗口减少转发至业务容器的请求消息的数量;当业务容器的性能指标或队列容器的信息量指标小于或等于第二预设值时,控制队列容器中的请求队列窗口增加转发至业务容器的请求消息的数量;当业务容器的性能指标或队列容器的信息量指标大于第二预设值,小于第一预设值时,依据预设策略控制队列容器中的请求队列窗口调整转发至业务容器的请求消息数量;其中,预设策略为维持当前进入业务容器的请求消息的数量。
根据本发明实施例的另一方面,还提供了一种自适应限流的装置,包括:接收模块,用于接收业务容器反馈的性能指标或队列容器反馈的信息量指标;判断模块,用于判断业务容器的性能指标或队列容器的信息量指标是否大于预设值;控制模块,用于依据判断结果控制队列容器转发至业务容器的请求消息的数量。
根据本发明实施例的另一方面,还提供了一种非易失性存储介质,其中,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行上述方法。
根据本发明实施例的另一方面,还提供了一种处理器,其中,处理器用于运行程序,其中,程序运行时执行上述方法。
在本发明实施例中,通过网关,用于接收请求消息,并将请求消息发送至队列容器;队列容器,用于接收并转发网关发送的请求消息;业务容器,用于接收队列容器转发的请求消息,并执行对应的处理操作;控制器,用于依据业务容器反馈的性能指标或队列容器反馈的信息量指标,控制队列容器转发至业务容器的请求消息的数量,达到了满足在不同的负载指标下动态实现限流的目的,从而实现了减少到业务容器的请求,到达业务限流目标的技术效果,进而解决了由于相关技术在限流上往往是通过静态设置限流策略实现限流,导致的无法满足实际业务的需求的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例一的自适应限流的系统的示意图;
图2是根据本发明实施例一的自适应限流的系统中请求消息的处理流程的示意图;
图3是本发明实施例的一种自适应限流的方法的计算机终端的硬件结构框图;
图4是根据本发明实施例二的自适应限流的方法的流程图;
图5是根据本发明实施例三的自适应限流的装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请涉及的技术名词:
Serverless:Serverless无服务器架构描述了一种场景,从用户自己维护的物理机,到IaaS,再到PaaS,计算模式的转变并不会停止,在云计算基础设施成熟的情况下应用程序可以不需要考虑服务器的存在,通过按需使用的方式,实现成本和效率的提升。
Knative:一款基于Kubernetes的Serverless开源框架,用于满足Serverless场景下应用部署和服务访问需求。
Kubernetes:容器编排调度框架,云原生技术事实标准。
KPA:Knative Pod Autoscaler,Knative中基于请求指标自动扩缩容。
HPA:Horizontal Pod Autoscaler,Kubernetes中水平扩缩容Pod实例。
Pod:Kubernetes中应用实例调度的基本单位。
实施例1
根据本发明实施例的一个方面,提供了一种自适应限流的系统,图1是根据本发明实施例一的自适应限流的系统的示意图,本申请实施例提供的自适应限流的系统包括:网关12、队列容器14、业务容器16和控制器18,其中,
网关12,用于接收请求消息,并将请求消息发送至队列容器14;队列容器14,用于接收并转发网关12发送的请求消息;业务容器16,用于接收队列容器14转发的请求消息,并执行对应的处理操作;控制器18,用于依据业务容器16反馈的性能指标或队列容器14反馈的信息量指标,控制队列容器14转发至业务容器16的请求消息的数量。
具体的,本申请实施例提供的自适应限流的系统可以应用于Serverless场景,如图2所示,图2是根据本发明实施例一的自适应限流的系统中请求消息的处理流程的示意图,通过网关12将接收到的请求消息发送至队列容器14,队列容器14将请求消息转发至业务容器16,由业务容器16对该请求消息进行处理,其中,业务容器16在处理请求消息的过程中,会反馈当前业务容器16的指标或队列容器14的性能指标至控制器18,其中,业务容器16的性能指标可以包括:CPU指标和存储指标(Memory指标);队列容器14的信息量指标可以包括:并发请求指标;当指标持续上升时,控制器18会控制队列容器14转发至业务容器16的请求消息的数量。
需要说明的是,评判指标是否持续上升可以通过设置预设值,判断该指标是否大于或等于该预设值,若指标大于或等于该预设值,则控制队列容器14降低转发至业务容器16的请求消息的数量。
可选的,队列容器14包括:通过调节请求队列窗口的大小,,其中,通过调节请求队列窗口的大小,,用于接收控制器18发送的调整指令,并依据调整指令通过调节请求队列窗口的大小,控制进入业务容器16的请求消息的数量。
进一步地,可选的,请求队列窗口包括:在业务容器16的性能指标或队列容器14的信息量指标大于或等于第一预设值的情况下,减少进入业务容器16的请求消息的数量;第二调节模块,用于在业务容器16的性能指标或队列容器14的信息量指标小于或等于第二预设值的情况下,增加进入业务容器16的请求消息的数量;第三调节模块,用于在业务容器16的性能指标或队列容器14的信息量指标大于第二预设值,小于第一预设值的情况下,依据预设策略调整进入业务容器16的请求消息的数量。
可选的,预设策略为维持当前进入业务容器16的请求消息的数量。
可选的,队列容器14,还用于将接收到的请求消息进行排队。
具体的,如图2所示,队列容器14记作QUENE容器,在本申请实施例中,控制器18通过控制QUENE容器中的请求队列窗口调整进入业务容器16的请求消息的数量,实现了限流的目的;
其中,通过设置预设值,在在预设值包括第一预设值和第二预设值,且第一预设值大于第二预设值的情况下,当业务容器16的性能指标或队列容器14的信息量指标大于或等于第一预设值的情况下,说明业务容器16中的性能指标或队列容器14的信息量指标持续升高,此时控制器18开始调整并减小请求队列窗口,从而减少接入业务容器的请求消息的数量,到达业务限流的目的。
当业务容器16的性能指标或队列容器14的信息量指标小于或等于第二预设值时,增加进入业务容器16的请求消息的数量;说明此时业务容器16或队列容器14的数据处理压力还能够接受更多的请求消息,此时控制器18控制请求队列窗口增加进入业务容器16的请求消息的数量。
当业务容器16的性能指标或队列容器14的信息量指标大于第二预设值,小于第一预设值时,依据预设策略调整进入业务容器16的请求消息的数量;即,在业务容器16的性能指标或队列容器14的信息量指标在第一预设值与第二预设值之间,说明此时业务容器16或队列容器14能够稳定运行,但是由于大于第二预设值,小于第一预设值,为了不限流,可以先维持当前业务容器16的状态。
可选的,业务容器16的性能指标包括:第一类弹性指标;第一类弹性指标包括:处理器指标和存储器指标;或,队列容器14的信息量指标包括:第二类弹性指标;第二类弹性指标包括:并发请求指标。
具体的,本申请实施例中以HPA和KPA类型为例,其中,HPA是本申请实施例中的第一类弹性指标,即,包含处理器指标和存储器指标,记作CPU指标和Memory指标;当CPU和Memory负载开始升高,即CPU指标和Memory指标大于或等于第一预设值的情况下,控制器18开始调整并减小请求队列窗口,从而减少进入业务容器的请求消息的数量,到达业务限流的目的。
同理,KPA是本申请实施例中的第二类弹性指标,在队列容器14中的并发请求数量(即,本申请实施例中的信息量指标中的并发请求指标)大于或等于第一预设值的情况下,控制器18开始调整并减小请求队列窗口,从而减少进入业务容器的请求消息的数量,到达业务限流的目的。
本申请实施例在实际应用于过程中处理器指标、存储器指标、并发请求指标以及请求队列窗口的大小可以对外进行显示,例如以图形化方式显示,如,处理器指标可以表现为当前处理器的性能曲线,业务占用率;或,存储器指标可以表现为存储器当前的读写状态表,存储器的占用率;并发请求指标可以表示为当前队列容器并发的请求消息数量;请求队列窗口的大小可以表示为窗口的形状变化,本申请实施例仅以上述示例为例进行说明,以实现本申请实施例提供的自适应限流的系统为准,具体不做限定。
需要说明的是,在图2中HPA的弹性指标以实线进行标记,KPA的弹性指标以虚线进行标记。
本申请实施例提供的自适应限流的系统在开源主流Serverless框架下基于弹性指标,实现自适应限流,满足了在Serverless场景下面对突发流量请求、负载指标不确定性以及弹性延迟的情况下动态流量控制的诉求,保障服务稳定运行。
此外,需要说明的是,本申请实施例中的请求消息仅以“消息/信息”的形式进行示例,以实现本申请实施例提供的自适应限流的系统为准,具体不做限定。
在本发明实施例中,通过网关,用于接收请求消息,并将请求消息发送至队列容器;队列容器,用于接收并转发网关发送的请求消息;业务容器,用于接收队列容器转发的请求消息,并执行对应的处理操作;控制器,用于依据业务容器反馈的性能指标或队列容器反馈的信息量指标,控制队列容器转发至业务容器的请求消息的数量,达到了满足在不同的负载指标下动态实现限流的目的,从而实现了减少到业务容器的请求,到达业务限流目标的技术效果,进而解决了由于相关技术在限流上往往是通过静态设置限流策略实现限流,导致的无法满足实际业务的需求的技术问题。
实施例2
根据本发明实施例,还提供了一种自适应限流的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图3是本发明实施例的一种自适应限流的方法的计算机终端的硬件结构框图。如图3所示,计算机终端30可以包括一个或多个(图中仅示出一个)处理器302(处理器302可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器304、以及用于通信功能的传输模块306。本领域普通技术人员可以理解,图3所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端30还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。
存储器304可用于存储应用软件的软件程序以及模块,如本发明实施例中的自适应限流的方法对应的程序指令/模块,处理器302通过运行存储在存储器304内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的自适应限流的方法。存储器304可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器304可进一步包括相对于处理器302远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端30。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块306用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端30的通信供应商提供的无线网络。在一个实例中,传输模块306包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块306可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在上述运行环境下,本申请提供了如图4所示的自适应限流的方法。图4是根据本发明实施例二的自适应限流的方法的流程图。在控制器侧,本申请实施例提供的自适应限流的方法具体如下:
步骤S402,接收业务容器反馈的性能指标或队列容器反馈的信息量指标;
本申请上述步骤S402中,控制器接收业务容器反馈的指标状态或队列容器反馈的指标。
可选的,业务容器的性能指标包括:第一类弹性指标;第一类弹性指标包括:处理器指标和存储器指标;或,队列容器的信息量指标包括:第二类弹性指标;第二类弹性指标包括:并发请求指标。
具体的,在本申请实施例中业务容器反馈的性能指标或队列容器反馈的信息量指标以HPA和KPA类型为例,其中,HPA是本申请实施例中的第一类弹性指标,即,包含处理器指标和存储器指标,记作CPU指标和Memory指标;当CPU和Memory负载开始升高,即CPU指标和Memory指标大于预设值的情况下,控制器开始调整并减小请求队列窗口,从而减少进入业务容器的请求消息的数量,到达业务限流的目的。
同理,KPA是本申请实施例中的第二类弹性指标,在队列容器14中的并发请求数量(即,本申请实施例中的信息量指标中的并发请求指标)大于或等于第一预设值的情况下,控制器18开始调整并减小请求队列窗口,从而减少进入业务容器的请求消息的数量,到达业务限流的目的。
步骤S404,判断业务容器的性能指标或队列容器的信息量指标是否大于预设值;
本申请上述步骤S404中,基于步骤S402中的业务容器的性能指标或队列容器的信息量指标进行判断,判断该业务容器的性能指标或队列容器的信息量是否大于预设值;
在本申请实施例中业务容器的性能指标或队列容器的信息量指标以HPA和KPA类型为例,在判断业务容器的性能指标或队列容器的信息量指标是否大于预设值时存在两种判断标准,具体如下:
第一种判断标准:业务容器的性能指标为第一类弹性指标;
可选的,步骤S404中判断业务容器的性能指标或队列容器的信息量指标是否大于预设值包括:判断业务容器中的处理器指标和存储器指标是否大于预设值。
具体的,在第一类弹性指标包括处理器指标和存储器指标的情况下,记作CPU指标和Memory指标;判断业务容器中的CPU指标和Memory指标是否大于预设值。
第二种判断标准:队列容器的信息量指标为第二类弹性指标;
可选的,步骤S404中判断业务容器的性能指标或队列容器的信息量指标是否大于预设值包括:判断消息容器中的并发请求指标是否大于预设值。
具体的,在第二类弹性指标包括并发请求指标的情况下,判断消息容器中的并发请求指标是否大于预设值。
步骤S406,依据判断结果控制队列容器转发至业务容器的请求消息的数量。
具体的,基于步骤S404中的判断,步骤S406控制器会依据判断结果控制队列容器转发至业务容器的请求消息的数量,即,通过队列容器进入业务容器的请求消息的数量。
由于步骤S404中是基于两种判断标准进行判断的,因此依据判断结果控制队列容器转发至业务容器的请求消息的数量具体如下:
在预设值包括第一预设值和第二预设值,且第一预设值大于第二预设值的情况下,本申请实施例提供的自适应限流的方法会存在三种判断结果,具体如下:
判断结果一:
当业务容器的性能指标或队列容器的信息量指标大于或等于第一预设值时,控制队列容器中的请求队列窗口减少转发至业务容器的请求消息的数量;
具体的,当业务容器的性能指标或队列容器的信息量指标大于或等于第一预设值的情况下,说明业务容器中的性能指标或队列容器的信息量指标持续升高,此时控制器开始调整并减小请求队列窗口,从而减少接入业务容器的请求消息的数量,到达业务限流的目的。
以HPA为例,当CPU和Memory负载开始升高,即CPU指标和Memory指标大于或等于第一预设值的情况下,控制器开始调整并减小请求队列窗口,从而减少进入业务容器的请求消息的数量,到达业务限流的目的。
判断结果二:
当业务容器的性能指标或队列容器的信息量指标小于或等于第二预设值时,增加进入业务容器的请求消息的数量;说明此时业务容器或队列容器的数据处理压力还能够接受更多的请求消息,此时控制器控制请求队列窗口增加进入业务容器的请求消息的数量;
具体的,当业务容器的性能指标或队列容器的信息量指标小于或等于第二预设值时,增加进入业务容器的请求消息的数量;说明此时业务容器或队列容器的数据处理压力还能够接受更多的请求消息,此时控制器控制请求队列窗口增加进入业务容器的请求消息的数量。
判断结果三:
当业务容器的性能指标或队列容器的信息量指标大于第二预设值,小于第一预设值时,依据预设策略控制队列容器中的请求队列窗口调整转发至业务容器的请求消息数量;其中,预设策略为维持当前进入业务容器的请求消息的数量。
具体的,当业务容器的性能指标或队列容器的信息量指标大于第二预设值,小于第一预设值时,依据预设策略调整进入业务容器的请求消息的数量;即,在业务容器的性能指标或队列容器的信息量指标在第一预设值与第二预设值之间,说明此时业务容器或队列容器能够稳定运行,但是由于大于第二预设值,小于第一预设值,为了不限流,可以先维持当前业务容器的状态。
综上,本申请实施例提供的自适应限流的方法中当请求量增大时,业务容器负载开始升高,控制器发现业务容器的指标升高,开始调整并减小请求队列窗口,从而减少进入业务容器的请求消息的数量,当业务容器负载降低之后,控制器发现指标降低,开始调整并增大请求队列窗口,从而增加进入业务容器的请求消息的数量。依据弹性指标,到达业务自适应限流的目标。
举例说明:
假如当前并发请求数100qps,持续5分钟。QUEUE容器中窗口大小为100,HPA的弹性指标为CPU 50%,也就是当CPU到达50%时开始扩容。当业务容器接收到请求流量之后开始处理,那么业务容器负载开始增高,当CPU达到50%HPA开始扩容,但扩容为完成之前,流量会继续进入该业务容器,此时控制器根据指标调整并减少请求队列窗口,从而避免流量过多导致业务容器崩溃。当弹性扩容完成之后,HPA指标随之降低,控制器根据业务容器的指标调整并增加请求队列窗口。通过自适应限流,保障了业务容器平稳运行。
本申请实施例提供的自适应限流的方法在开源主流Serverless框架下基于弹性指标,实现自适应限流,满足了在Serverless场景下面对突发业务流量、负载指标不确定性以及弹性延迟等的情况下,动态流量控制的诉求,保障服务稳定运行。对实际Serverless场景具有重要的应用价值。
在本发明实施例中,通过接收业务容器反馈的性能指标或队列容器反馈的信息量指标;判断业务容器的性能指标或队列容器的信息量指标是否大于预设值;依据判断结果控制队列容器转发至业务容器的请求消息的数量,达到了满足在不同的负载指标下动态实现限流的目的,从而实现了减少到业务容器的请求,到达业务限流目标的技术效果,进而解决了由于相关技术在限流上往往是通过静态设置限流策略实现限流,导致的无法满足实际业务的需求的技术问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的自适应限流的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例3
根据本发明实施例,还提供了一种用于实施上述自适应限流的方法的装置,图5是根据本发明实施例三的自适应限流的装置的示意图,如图5所示,本申请实施例提供的自适应限流的装置包括:接收模块52,用于接收业务容器反馈的性能指标或队列容器反馈的信息量指标;判断模块54,用于判断业务容器的性能指标或队列容器的信息量指标是否大于预设值;控制模块56,用于依据判断结果控制队列容器转发至业务容器的请求消息的数量。
实施例4
根据本发明实施例的另一方面,还提供了一种非易失性存储介质,其中,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行上述实施例2中的方法。
实施例5
根据本发明实施例的另一方面,还提供了一种处理器,其中,处理器用于运行程序,其中,程序运行时执行上述实施例2中的方法。
实施例6
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的自适应限流的方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:接收业务容器反馈的性能指标或队列容器反馈的信息量指标;判断业务容器的性能指标或队列容器的信息量指标是否大于预设值;依据判断结果控制队列容器转发至业务容器的请求消息的数量。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:业务容器的性能指标包括:第一类弹性指标;第一类弹性指标包括:处理器指标和存储器指标;或,队列容器的信息量指标包括:第二类弹性指标;第二类弹性指标包括:并发请求指标。
进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:判断业务容器的性能指标或队列容器的信息量指标是否大于预设值包括:在业务容器的指标为第一类弹性指标的情况下,判断业务容器中的处理器指标和存储器指标是否大于预设值。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:判断业务容器的性能指标或队列容器的信息量指标是否大于预设值包括:在队列容器的指标为第二类弹性指标的情况下,判断队列容器中的并发请求指标是否大于预设值。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据判断结果控制队列容器转发至业务容器的请求消息的数量包括:在预设值包括第一预设值和第二预设值,且第一预设值大于第二预设值的情况下,当业务容器的性能指标或队列容器的信息量指标大于或等于第一预设值时,控制队列容器中的请求队列窗口减少转发至业务容器的请求消息的数量;当业务容器的性能指标或队列容器的信息量指标小于或等于第二预设值时,控制队列容器中的请求队列窗口增加转发至业务容器的请求消息的数量;当业务容器的性能指标或队列容器的信息量指标大于第二预设值,小于第一预设值时,依据预设策略控制队列容器中的请求队列窗口调整转发至业务容器的请求消息数量;其中,预设策略为维持当前进入业务容器的请求消息的数量。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种自适应限流的系统,包括:
网关、队列容器、业务容器和控制器,其中,
所述网关,用于接收请求消息,并将所述请求消息发送至所述队列容器;
所述队列容器,用于接收并转发所述网关发送的所述请求消息;
所述业务容器,用于接收所述队列容器转发的所述请求消息,并执行对应的处理操作;
所述控制器,用于依据所述业务容器反馈的性能指标或所述队列容器反馈的信息量指标,控制所述队列容器转发至所述业务容器的请求消息的数量。
2.根据权利要求1所述的系统,其中,所述队列容器包括:调节模块,其中,
所述调节模块,用于接收所述控制器发送的调整指令,并依据所述调整指令通过调节请求队列窗口的大小,控制进入所述业务容器的请求消息的数量。
3.根据权利要求2所述的系统,其中,所述调节模块包括:
第一调节模块,用于在所述业务容器的性能指标或所述队列容器的信息量指标大于或等于第一预设值的情况下,减少进入所述业务容器的请求消息的数量;
第二调节模块,用于在所述业务容器的性能指标或所述队列容器的信息量指标小于或等于第二预设值的情况下,增加进入所述业务容器的请求消息的数量;
第三调节模块,用于在所述业务容器的性能指标或所述队列容器的信息量指标大于所述第二预设值,小于所述第一预设值的情况下,依据预设策略调整进入所述业务容器的请求消息的数量。
4.根据权利要求3所述的系统,其中,所述预设策略为维持当前进入所述业务容器的请求消息的数量。
5.根据权利要求2所述的系统,其中,所述队列容器,还用于将接收到的所述请求消息进行排队。
6.根据权利要求1所述的系统,其中,所述业务容器的性能指标包括:第一类弹性指标;所述第一类弹性指标包括:处理器指标和存储器指标;或,所述队列容器的信息量指标包括:第二类弹性指标;所述第二类弹性指标包括:并发请求指标。
7.一种自适应限流的方法,包括:
接收业务容器反馈的性能指标或队列容器反馈的信息量指标;
判断所述业务容器的性能指标或所述队列容器的信息量指标是否大于预设值;
依据判断结果控制队列容器转发至所述业务容器的请求消息的数量。
8.根据权利要求7所述的方法,其中,所述业务容器的性能指标包括:第一类弹性指标;所述第一类弹性指标包括:处理器指标和存储器指标;或,所述队列容器的信息量指标包括:第二类弹性指标;所述第二类弹性指标包括:并发请求指标。
9.根据权利要求8所述的方法,其中,所述判断所述业务容器的性能指标或所述队列容器的信息量指标是否大于预设值包括:
在所述业务容器的指标为第一类弹性指标的情况下,判断所述业务容器中的处理器指标和存储器指标是否大于预设值。
10.根据权利要求8所述的方法,其中,所述判断所述业务容器的性能指标或所述队列容器的信息量指标是否大于预设值包括:
在所述队列容器的指标为第二类弹性指标的情况下,判断所述队列容器中的并发请求指标是否大于预设值。
11.根据权利要求7至10中任意一项所述的方法,其中,所述依据判断结果控制队列容器转发至所述业务容器的请求消息的数量包括:
在所述预设值包括第一预设值和第二预设值,且所述第一预设值大于所述第二预设值的情况下,
当所述业务容器的性能指标或所述队列容器的信息量指标大于或等于所述第一预设值时,控制所述队列容器中的请求队列窗口减少转发至所述业务容器的请求消息的数量;
当所述业务容器的性能指标或所述队列容器的信息量指标小于或等于所述第二预设值时,控制所述队列容器中的请求队列窗口增加转发至所述业务容器的请求消息的数量;
当所述业务容器的性能指标或所述队列容器的信息量指标大于所述第二预设值,小于所述第一预设值时,依据预设策略控制所述队列容器中的请求队列窗口调整转发至所述业务容器的请求消息数量;其中,所述预设策略为维持当前进入所述业务容器的请求消息的数量。
12.一种自适应限流的装置,包括:
接收模块,用于接收业务容器反馈的性能指标或队列容器反馈的信息量指标;
判断模块,用于判断所述业务容器的性能指标或所述队列容器的信息量指标是否大于预设值;
控制模块,用于依据判断结果控制队列容器转发至所述业务容器的请求消息的数量。
13.一种非易失性存储介质,其中,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求7所述方法。
14.一种处理器,其中,所述处理器用于运行程序,其中,所述程序运行时执行权利要求7所述方法。
CN202110352749.2A 2021-03-31 2021-03-31 自适应限流的系统、方法和装置 Active CN113315718B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110352749.2A CN113315718B (zh) 2021-03-31 2021-03-31 自适应限流的系统、方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110352749.2A CN113315718B (zh) 2021-03-31 2021-03-31 自适应限流的系统、方法和装置

Publications (2)

Publication Number Publication Date
CN113315718A true CN113315718A (zh) 2021-08-27
CN113315718B CN113315718B (zh) 2023-11-14

Family

ID=77371988

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110352749.2A Active CN113315718B (zh) 2021-03-31 2021-03-31 自适应限流的系统、方法和装置

Country Status (1)

Country Link
CN (1) CN113315718B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114500661A (zh) * 2021-12-22 2022-05-13 新奥新智科技有限公司 一种限流设备、方法、装置及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106603598A (zh) * 2015-10-15 2017-04-26 阿里巴巴集团控股有限公司 处理业务请求的方法及装置
CN108572898A (zh) * 2017-03-07 2018-09-25 北京京东尚科信息技术有限公司 一种控制接口的方法、装置、设备、以及存储介质
CN108633311A (zh) * 2017-01-26 2018-10-09 华为技术有限公司 一种基于调用链的并发控制的方法、装置及控制节点
US10193822B1 (en) * 2016-08-18 2019-01-29 Amazon Technologies, Inc. Predictive auto-scaling and reactive auto-scaling for network accessible messaging services
CN110460534A (zh) * 2019-07-26 2019-11-15 腾讯云计算(北京)有限责任公司 一种请求消息上报方法、装置、设备及存储介质
CN110896382A (zh) * 2019-12-13 2020-03-20 北京奇艺世纪科技有限公司 流量控制方法、装置、设备和计算机可读存储介质
US20200264813A1 (en) * 2019-02-20 2020-08-20 Canon Kabushiki Kaisha Resource service system, control method, and storage medium
CN111897564A (zh) * 2020-08-19 2020-11-06 腾讯科技(深圳)有限公司 一种应用更新方法及系统
US20200358719A1 (en) * 2019-05-08 2020-11-12 Cisco Technology, Inc. Multi-tenant optimized serverless placement using smart network interface cards and commodity storage

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106603598A (zh) * 2015-10-15 2017-04-26 阿里巴巴集团控股有限公司 处理业务请求的方法及装置
US10193822B1 (en) * 2016-08-18 2019-01-29 Amazon Technologies, Inc. Predictive auto-scaling and reactive auto-scaling for network accessible messaging services
CN108633311A (zh) * 2017-01-26 2018-10-09 华为技术有限公司 一种基于调用链的并发控制的方法、装置及控制节点
CN108572898A (zh) * 2017-03-07 2018-09-25 北京京东尚科信息技术有限公司 一种控制接口的方法、装置、设备、以及存储介质
US20200264813A1 (en) * 2019-02-20 2020-08-20 Canon Kabushiki Kaisha Resource service system, control method, and storage medium
US20200358719A1 (en) * 2019-05-08 2020-11-12 Cisco Technology, Inc. Multi-tenant optimized serverless placement using smart network interface cards and commodity storage
CN110460534A (zh) * 2019-07-26 2019-11-15 腾讯云计算(北京)有限责任公司 一种请求消息上报方法、装置、设备及存储介质
CN110896382A (zh) * 2019-12-13 2020-03-20 北京奇艺世纪科技有限公司 流量控制方法、装置、设备和计算机可读存储介质
CN111897564A (zh) * 2020-08-19 2020-11-06 腾讯科技(深圳)有限公司 一种应用更新方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HHFCODERV: "限流器系列(3)--自适应限流", pages 1, Retrieved from the Internet <URL:URL: https://www.haohongfan.com/posts/2020-07-05-bbr/> *
丁威: "Sentinel 系统自适应限流原理剖析与实战指导", Retrieved from the Internet <URL:https://cloud.tencent.com/developer/article/1633307> *
王科怀(行松): "如何通过Serverless提高Java微服务治理效率", Retrieved from the Internet <URL:https://www.kubernetes.org.cn/8981.html> *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114500661A (zh) * 2021-12-22 2022-05-13 新奥新智科技有限公司 一种限流设备、方法、装置及存储介质

Also Published As

Publication number Publication date
CN113315718B (zh) 2023-11-14

Similar Documents

Publication Publication Date Title
US10285185B2 (en) Resource allocation method and communications terminal
CN105553870B (zh) 业务请求的分配方法和装置
EP2519074B1 (en) Method and device for adjusting service processing resources in a multi-mode base station system
CN106790679B (zh) 一种下载应用资源包的方法及服务器、终端
CN112868265B (zh) 网络资源的管理方法、管理装置、电子设备及存储介质
CN104170516A (zh) 用于降低掉话率的方法和装置
WO2014094310A1 (zh) 资源调度的方法和装置
CN108494788A (zh) 数据的传输方法、数据传输装置及计算机可读存储介质
CN102387069B (zh) 客户端与服务端的连接方法及系统、客户端和服务端
CN103476074B (zh) 一种资源抢占方法及设备
CN113115327A (zh) 一种网络性能动态优化的方法、装置、设备及存储介质
CN111669322B (zh) 一种中继器桥接方法和网关
CN113315718B (zh) 自适应限流的系统、方法和装置
WO2021012506A1 (zh) 语音识别系统中的负载均衡实现方法、装置以及计算机设备
CN109863791B (zh) 用于在无线通信系统中选择接入网络的方法和装置
CN107147475B (zh) 一种调制编码方式的调整方法及基站
CN114828235A (zh) 一种带宽分配方法、带宽分配装置及计算机可读存储介质
CN114666279B (zh) 一种5g系统中pcc会话管理策略下发的方法及系统
CN112996112B (zh) 一种频域资源分配方法、装置、电子设备及存储介质
CN105828407A (zh) 一种业务接纳控制方法及基站
CN110650540B (zh) 一种无线资源分配方法及装置
CN103686874B (zh) 一种带宽分配方法
TW201743656A (zh) 傳輸資料的方法、基地台和電腦程式產品
US8351449B1 (en) Scheduling data communication for mobile communication devices with multiple wireless network interfaces associated with differing costs
CN111459514A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40069591

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240315

Address after: # 03-06, Lai Zan Da Building 1, 51 Belarusian Road, Singapore

Patentee after: Alibaba Innovation Co.

Country or region after: Singapore

Address before: Room 01, 45th Floor, AXA Building, 8 Shanton Road, Singapore

Patentee before: Alibaba Singapore Holdings Ltd.

Country or region before: Singapore