CN113301076A - 流量控制方法、分布式***、设备及存储介质 - Google Patents
流量控制方法、分布式***、设备及存储介质 Download PDFInfo
- Publication number
- CN113301076A CN113301076A CN202010421729.1A CN202010421729A CN113301076A CN 113301076 A CN113301076 A CN 113301076A CN 202010421729 A CN202010421729 A CN 202010421729A CN 113301076 A CN113301076 A CN 113301076A
- Authority
- CN
- China
- Prior art keywords
- flow
- flow control
- service node
- node
- reporting period
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种流量控制方法、分布式***、设备及存储介质。在本申请实施例中,将动态配额流控方案和PID流控方案相结合,即在流量处于非相对稳定状态的情况下,采用动态配额流控方案,可以有效地抑制流量超调现象,也可以缩短后续PID流控过程进入稳态的时间;在流量处于相对稳定状态的情况下,采用PID流控方案,可以及时快速地对分布式服务节点的变化、负载变化等进行快速响应,增加用户的使用体验。
Description
技术领域
本申请涉及网络技术领域,尤其涉及一种流量控制方法、分布式***、设备及存储介质。
背景技术
随着云计算的发展,各种弹性计算服务及容器服务等云计算资源越来越多,这些云计算资源也需要存储数据,于是出现了云存储***。云存储***是一种支持多用户的分布式存储***,允许每个用户将数据存储在多个服务节点或机器上。
为了保证云存储***的可用性,有必要将每个用户对云存储***发起的访问流量限制在每个用户的预期配额内。但是,在云存储***中为每个用户提供存储服务的服务节点的数量可能变化,且每个服务节点所能接收到的请求数量也是不确定的,因此如何实现流量控制是云存储***目前面临的一个技术难题。
发明内容
本申请的多个方面提供一种流量控制方法、分布式***、设备及存储介质,用以实现对分布式***的流量控制,提高分布式***的可用性。
本申请实施例提供一种分布式***,包括:流控中心节点以及为不同应用对象提供服务的多个服务节点;流控中心节点,用于在来自目标应用对象的流量处于非相对稳定状态时,采用动态配额流控方案对为目标应用对象提供服务的至少一个服务节点进行流量控制,以使来自目标应用对象的流量进入相对稳定状态;以及在来自目标应用对象的流量进入相对稳定状态的情况下,采用PID流控方案对至少一个服务节点进行流量控制。
本申请实施例还提供一种流量控制方法,适用于分布式***中的流控中心节点,该方法包括:确定为分布式***中的目标应用对象提供服务的至少一个服务节点;若来自目标应用对象的流量处于非相对稳定状态,采用动态配额流控方案对至少一个服务节点进行流量控制,以使来自目标应用对象的流量进入相对稳定状态;以及在来自目标应用对象的流量进入相对稳定状态的情况下,采用PID流控方案对至少一个服务节点进行流量控制。
本申请实施例还提供一种流量控制方法,适用于分布式***为目标应用对象提供服务的任一服务节点,该方法包括:向分布式***中的流控中心节点提供当前汇报周期内尚未处理的流量信息,以供流控中心节点判断来自目标应用对象的流量是否进入相对稳定状态;接收流控中心节点在判断出来自目标应用对象的流量进入非相对稳定状态时返回的服务节点在下一汇报周期内的流量配额;根据在下一汇报周期内的流量配额对下一汇报周期内待处理的流量进行处理,以使来自目标应用对象的流量进入相对稳定状态。
本申请实施例还提供一种流控中心节点包括:存储器和处理器;存储器,用于存储计算机程序;处理器,与存储器耦合,用于执行计算机程序,以用于:确定为分布式***中的目标应用对象提供服务的至少一个服务节点;若来自目标应用对象的流量处于非相对稳定状态,采用动态配额流控方案对至少一个服务节点进行流量控制,以使来自目标应用对象的流量进入相对稳定状态;以及在来自目标应用对象的流量进入相对稳定状态的情况下,采用PID流控方案对至少一个服务节点进行流量控制。
本申请实施例还提供一种服务节点,包括:处理器、存储器和通信组件;存储器,用于存储计算机程序;处理器,与存储器耦合,用于执行计算机程序,以用于:通过通信组件向分布式***中的流控中心节点提供当前汇报周期内尚未处理的流量信息,以供流控中心节点判断来自目标应用对象的流量是否进入相对稳定状态;通过通信组件接收流控中心节点在判断出来自目标应用对象的流量进入非相对稳定状态时返回的服务节点在下一汇报周期内的流量配额;根据在下一汇报周期内的流量配额对下一汇报周期内待处理的流量进行处理,以使来自目标应用对象的流量进入相对稳定状态。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现本申请实施例提供的任一项流量控制方法中的步骤。
在本申请实施例中,将动态配额流控方案和PID流控方案相结合,即在流量处于非相对稳定状态的情况下,采用动态配额流控方案,可以有效地抑制流量超调现象,也可以缩短后续PID流控过程进入稳态的时间;在流量处于相对稳定状态的情况下,采用PID流控方案,可以及时快速地对分布式服务节点的变化、负载变化等进行快速响应,增加用户的使用体验。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请示例性实施例提供的一种分布式***的结构示意图;
图1b为流控中心点采用动态配额流控方案对为目标应用对象提供服务的服务节点进行限流控制的过程示意图;
图1c为流控中心点采用PID流控方案对为目标应用对象提供服务的服务节点进行限流控制的交互流程图;
图1d为流控中心点采用动态配额流控方案和PID流控方案相结合的方案实现的流量控制的交互流程图;
图2a为本申请示例性实施例提供的一种兼容HDFS语义的云存储***的结构示意图;
图2b为流控中心点采用动态配额流控方案和PID流控方案相结合的方案实现的流量控制的交互流程图;
图3为本申请示例性实施例提供的一种流量控制方法的流程示意图;
图4为本申请示例性实施例提供的另一种流量控制方法的流程示意图;
图5为本申请示例性实施例提供的一种流控中心节点的结构示意图;
图6为本申请示例性实施例提供的一种服务节点的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对分布式***面临的流量控制问题,本申请实施例提供以下几种可对分布式***进行流量控制的流控方案:
流控方案A1:采用动态配额流控方案对分布式***进行流量控制。动态配额流控方案是基于动态配额的流控方案,在该方案中,为分布式***中的服务节点分配流量配额,根据流量配额对收到的流量进行处理,当流量配额消耗完时,新接收到的流量处于排队状态,直到收到新的流量配额再继续处理,达到流量控制的目的,进而保证分布式***的可用性。
流控方案A2:采用PID流控方案对分布式***进行流量控制。PID流控方案是基于PID反馈机制的流控方案,在该方案中,通过计算流控惩罚延时,对新增流量进行延时处理,达到流量控制的目的,进而保证分布式***的可用性。
流控方案A3:将动态配额流控方案和PID流控方案相结合,即在采用PID流控方案之前先采用动态配额流控方案,使得应用对象的流量无超调且快速的达到稳定状态。
以下结合附图,在本申请下述各实施例中将对上述几种流控解决方案进行详细说明。
图1a为本申请示例性实施例提供的一种分布式***的结构示意图。如图1a所示,该分布式***100包括:流控中心节点101以及为不同应用对象103提供服务的多个服务节点102。其中,多个服务节点102分布在不同位置,分别与流控中心节点101通信连接。
流控中心节点101可以独立部署在分布式***100中,也可以集中部署在一个服务节点102上,或者分布式部署在多个服务节点102上,本实施例对此不做限定。进一步,在流控中心节点101独立部署在分布式***100中的情况下,流控中心节点101可以集中部署在一台物理设备或一台虚拟机上,也可以分布式部署在多台物理设备或多台虚拟机上。在图1a中以流控中心节点101独立部署在分布式***100中为例进行图示,但并不限于此。
服务节点102是指可以为应用对象103提供服务的节点设备,可以是虚拟机或物理设备等。应用对象103是需要使用服务节点102所提供的服务的对象,可以是用户、租户、应用程序、程序模块、服务***或云场景中提供某种服务的实例,例如文件***实例,ECS实例、EGS实例等。在本申请实施例中,并不限定分布式***100所能实现的功能,分布式***100所能实现的功能不同,服务节点102的实现形态也会有所不同。例如,分布式***100可以是分布式的云存储***、分布式计算***、分布式多媒体***、分布式文件***等。以分布式的云存储***为例,服务节点102可以是具有存储功能的设备,主要向用户或用户在云场景中部署的提供某种服务的实例,例如ECS实例、EGS实例、文件***实例等提供存储服务。以分布式计算***为例,服务节点102可以是具有CPU、GPU等计算资源的设备,主要向用户或用户在云场景中部署的提供某种服务的实例,例如ECS实例、EGS实例等提供云计算服务。
在本申请实施例中,分布式***100可为多个应用对象103提供服务;对每个应用对象103来说,可由至少一个服务节点102为其提供服务;对同一服务节点102来说,可以为一个应用对象103提供服务,也可以为多个不同的应用对象103同时提供服务。进一步可选地,在同一服务节点102同时为多个应用对象103提供服务的情况下,可在多个应用对象103之间实现隔离,为各应用对象103提供安全隔离的运行环境,保证各应用对象103的数据安全。
其中,应用对象103可以对为其提供服务的服务节点102发起访问请求,从而使用服务节点102为其提供的服务。应用对象103发起的访问请求会因分布式***100所实现功能的不同而有所不同,例如可以是读取请求、写入请求、查询请求、上传请求、下载请求等各种IO请求。对分布式***100来说,若多个应用对象103同时对分布式***100中的服务节点102频繁发起访问请求,可能会造成服务节点102的负荷过大,有可能导致分布式***100的可用性降低,甚至发生宕机,造成***崩溃。为了保证分布式***100的可用性,有必要对应用对象103发起的访问请求进行限流控制,因此分布式***100中引入了流控中心节点101,由流控中心节点101以应用对象103为单位对每个应用对象103发起访问请求进行限流控制。
在本实施例中,对每个应用对象103发起的访问请求进行限流控制的过程,也就是对每个应用对象103发起访问请求的速率进行合理控制的过程。例如,流控中心节点101可以将每个应用对象103发起访问请求的速率限制在一定全局流量配额内,确保为每个应用对象103提供服务的服务节点102的可用性,进而保证分布式***100的可用性。需要说明的是,全局流量配额可以是单位时间内允许应用对象103发起访问请求的数量阈值,例如可以采用QPS阈值或QTS阈值进行衡量。不同应用对象103对应的全局流量配额可以相同,也可以不相同。对任一应用对象103来说,其对应的全局流量配额可以是应用对象103或其应用对象103对应用户预先配置的,也可以是流控中心节点101根据流控需求在每次流控过程中为应用对象103实时分配的。
在本申请实施例中,流控中心节点101对每个应用对象103发起的访问请求进行限流控制,实际上是对为该应用对象103提供服务的服务节点102进行限流控制的过程,可以采用但不限于上述流控方案A1-A3中任意一种。其中,流控中心节点101针对任一应用对象103进行流量控制的过程相同或相似,故在本申请下述实施例中以针对目标应用对象进行流量控制为例进行说明。目标应用对象是任一应用对象103,标记为103a。在图1a中以目标应用对象103a是ECS实例为例进行图示,但并不限于此。下面结合附图1b-1d,对流控中心节点101采用上述流控方案A1-A3对为目标应用对象提供服务的至少一个服务节点102进行限流控制的过程进行说明。
其中,图1b为流控中心点101采用动态配额流控方案对为目标应用对象103a提供服务的服务节点102进行限流控制的交互流程图。如图1b所示,该限流控制过程包括:
11b、流控中心节点获取目标应用对象对应的全局流量配额,并确定为该目标应用对象提供服务的至少一个服务节点。
12b、至少一个服务节点在每个汇报周期向流控中心节点上报尚未处理的流量信息。
13b、流控中心节点根据至少一个服务节点在上一汇报周期内尚未处理的流量信息之间的比例关系和全局流量配额,计算至少一个服务节点在下一汇报周期的流量配额。
14b、流控中心节点将至少一个服务节点在下一汇报周期的流量配额下发给至少一个服务节点。
15b、至少一个服务节点根据在下一汇报周期内的流量配额对下一汇报周期内尚未处理的流量信息进行处理。
在步骤11b中,目标应用对象103a对应的全局流量配额是在单个汇报周期(例如1秒)内最多可以处理来自目标应用对象103a的访问请求的数量阈值,例如可以是100QPS,或150QPS等,也可以是100TPS,或200TPS等。汇报周期是指每个服务节点102向流控中心节点101上报相关流量信息的周期。在本实施例中,并不对汇报周期的长度进行限定,例如可以是0.5s,1s,2s,3s等。
在本实施例中,流控中心节点101可以对外提供人机交互界面,该人机交互界面可以是web页面、应用页面或命令窗等。用户可以通过人机交互界面将目标应用对象103a对应的全局流量配额提交给流控中心节点101。
需要说明的是,除了上述人机交互界面方式之外,流控中心节点101也可以通过其他方式获取目标应用对象103a对应的全局流量配额。例如,用户可以通过其它可以与流控中心节点101通信的设备,例如终端设备或配置设备等,将目标应用对象103a对应的全局流量配额以有线或无线通信方式传输给流控中心节点101,则流控中心节点101可以接收其它设备传输来的全局流量配额。或者,也可以预先在服务节点102上内置目标应用对象103a对应的全局流量配额,则流控中心节点101可以获取内置的全局流量配额。或者,流控中心节点101也可以根据流控需求在每次流控过程中为目标应用对象103a自行分配全局流量配额,对此不做限定。
在本实施例中,为目标应用对象103a提供服务的至少一个服务节点,可以是固定不变的几个服务节点102,例如,固定由服务节点X1、服务节点X2和服务节点X3为目标应用对象103a提供服务;或者,也可以是动态变化的服务节点102,例如,一开始可以由服务节点Y1和服务节点Y2为目标应用对象103a提供服务,后续可以由服务节点Z1和服务节点Z2为目标应用对象103a提供服务。另外,在本实施例中,也不限定为目标应用对象103a提供服务的至少一个服务节点的数量,例如可以是一个,也可以是多个,例如2个、5个、10个、50个或300个等。可选地,上述至少一个服务节点在获知自己可以为目标应用对象103a提供服务时,可以向流控中心节点101进行注册并告知其标识信息,例如服务地址、节点ID、节点名称等。流控中心节点101可根据服务节点的注册信息确定可为目标应用对象103a提供服务的至少一个服务节点。
在步骤12b中,每个服务节点102按照设定的汇报周期定期向流控中心节点101上报每个汇报周期内尚未处理的流量信息,这里尚未处理的流量信息是指来自目标应用对象103a的流量。其中,每个服务节点102接收到的来自目标应用对象103a的流量可以是目标应用对象103a直接发送给服务节点102的,也可以是目标应用对象103a先发送至负责负载均衡的节点再由其责负载均衡的节点根据负载均衡策略分发给服务节点102的。其中,每个服务节点在每个汇报周期上报的其尚未处理的流量信息是指当上报时刻为止来自目标应用对象103a的尚未处理的流量。
其中,在采用动态配额流控方案中,每个服务节点会维护一个等待(pending)队列,对于超过流控配额的流量会被加入待队列中进行等待。进一步,在上报时刻到达时,服务节点可以将此时等待队列中的流量以及尚未添加到等待队列中的新增流量作为尚未处理的流量信息上报给流控中心节点101。例如,以汇报周期T1为例,假设该汇报周期T1内的流量配额会被目前pending队列中的部分流量耗尽,则服务节点会将在汇报周期T1期间,接收到的新增流量加入pending队列尾部,并且会在汇报周期T1结束时向流控中心节点101上报其尚未处理的流量信息。其中,若在汇报周期T1结束时无新增流量到来,则服务节点可将pending队列中的流量作为待处理的流量上报至流控中心节点101,若在汇报周期T1结束时上有新增流量到来,且新增流量尚未来得及加入pending队列尾部,则服务节点会将pending队列中的流量和该新增流量一起发送至流控中心节点101,之后,服务节点会将该新增流量加入到pending队列的尾部。
需要说明的是,在目标应用对象103a没有向服务节点102发送流量的情况下,服务节点102可以按照汇报周期向流控中心节点101上报尚未处理的流量信息,此时上报的流量信息为0。
在步骤13b中,流控中心节点101可依次接收到至少一个服务节点102在各个汇报周期上报的其尚未处理的流量信息,并会根据至少一个服务节点102在上一汇报周期内尚未处理的流量信息之间的比例关系和全局流量配额,计算各服务节点102在下一汇报周期内的流量配额。在本实施例中,并不对流控中心节点101计算至少一个服务节点102在下一汇报周期的流量配额的方式进行限定。例如,为目标应用对象103提供服务的服务节点102为服务节点N1,N2,N3,服务节点N1,N2,N3在上一汇报周期内汇报的尚未处理的流量信息的比例关系为1:2:3,全局流量配额为M,则流控中心节点101可以按照比例关系将全局流量配额M分为6(1+2+3=6)份,为服务节点N1分配的流量配额为M的1/6,为服务节点N2分配的流量配额为M的2/6,为服务节点N3分配的流量配额为M的3/6。或者,还可以是在上述比例关系的基础上,增加对服务节点N1,N2,N3在下一汇报周期的流量预期,若流控中心节点101发现服务节点N1连续几个汇报周期一直处于流量增加状态,则计算流量配额时,可调整比例关系为2:2:3,进而可将全局流量配额M分为7(2+2+3=7)份,为服务节点N1分配的流量配额为M的2/7,为服务节点N2分配的流量配额为M的2/7,为服务节点N3分配的流量配额为M的3/7。
在步骤15b中,各服务节点102在收到流控中心节点101提供的下一汇报周期内的流量配额之后,可在下一汇报周期开始之后,利用接收到的流量配额对该周期内待处理的流量进行处理。其中,下一汇报周期内待处理的流量信息包括在下一汇报周期开始时pending队列中的流量和在下一汇报周期内接收到的新增流量。若全局流量配额用QPS来衡量,则各服务节点102在每个汇报周期接收到的流量配额也是QPS。假设某一服务节点102在下一汇报周期内的流量配额为100QPS,而pending队列中包含150个访问请求,则服务节点在下一汇报周期到达后,可从pending队列头部开始处理前100个访问请求,进一步在下一汇报周期结束时,可将剩下的50个访问请求和在该汇报周期内接收到的新增流量作为尚未处理的流量信息上报流控中心节点101,用于计算之后下一汇报周期内的流量配额,如此循环往复,达到对目标应用对象103a进行限流控制的目的。在整个过程中,服务节点102处理的流量始终在其分配到的流量配额内,因此,不会出现流量超调现象,保证了分布式***的可用性。
其中,图1c为流控中心点101采用PID流控方案对为目标应用对象103a提供服务的服务节点102进行限流控制的交互流程图。如图1c所示,该限流控制过程包括:
11c、流控中心节点获取目标应用对象对应的全局流量配额,并确定为该目标应用对象提供服务的至少一个服务节点。
12c、至少一个服务节点在每个汇报周期向流控中心节点上报新增流量信息。
13c、流控中心节点根据至少一个服务节点在上一汇报周期内的新增流量信息,统计上一汇报周期内的全局流量信息。
14c、流控中心节点根据目标应用对象对应的全局流量配额和上一汇报周期内的全局流量信息,利用PID流控算法计算下一汇报周期内的流控惩罚延时。
15c、流控中心节点将下一汇报周期内的流控惩罚延时下发给至少一个服务节点。
16c、至少一个服务节点根据接收到的下一汇报周期内的流控惩罚延时,在下一汇报周期内对待处理的流量进行延时处理。
关于步骤11c的描述,可参见图1b所示实施例中步骤11b的描述,在此不再赘述。
在步骤12c中,每个服务节点102按照设定的汇报周期定期向流控中心节点101上报每个汇报周期内的新增流量信息,这里新增流量信息是指来自目标应用对象103a的流量。其中,每个服务节点102接收到的来自目标应用对象103a的流量可以是目标应用对象103a直接发送给服务节点102的,也可以是目标应用对象103a先发送至负责负载均衡的节点再由其责负载均衡的节点根据负载均衡策略分发给服务节点102的。
在PID流控方案中,每个服务节点102会在每个汇报周期到来时,根据该汇报周期内的流控惩罚延时对该汇报周期内的新增流量进行延时处理,并且可在每个汇报周期结束时向流控中心节点上报每个汇报周期内的新增流量信息。由于每个汇报周期的新增流量信息会被及时地执行延时处理,所以服务节点102无需维护pending队列。其中,每个汇报周期结束时,也可以理解为是在下一汇报周期到达或开始时。
在步骤13c中,为了保证分布式***的可用性,需要将来自目标应用对象103a的流量尽快限制在全局流量配额内,而来自目标应用对象103a的流量被分散到为目标应用对象103a提供服务的各服务节点102上,因此,流控中心节点101可按照汇报周期的先后顺序,依次根据至少一个服务节点102上报的每个汇报周期内的新增流量信息,统计出每个汇报周期内的全局流量信息;其中,任一汇报周期内的全局流量信息可表示在该汇报周期内来自目标应用对象103a的流量。进一步考虑到汇报周期存在的时间延迟,流控中心节点101每次可根据至少一个服务节点102在上一汇报周期内的新增流量信息,统计出上一汇报周期内的全局流量信息。在本实施例中,并不限定流控中心节点101统计上一汇报周期内的全局流量信息的实施方式。例如可以是将至少一个服务节点102在上一汇报周期内的新增流量信息之和,作为上一汇报周期内的全局流量信息;也可以是将至少一个服务节点102在上一汇报周期内的新增流量信息加权求和后的结果,作为上一汇报周期内的全局流量信息,对此不做限定。
在步骤14c中,在得到上一汇报周期内的全局流量信息之后,由于需要将来自目标应用对象103a的流量尽快限制在全局流量配额内,故可以根据目标应用对象103a对应的全局流量配额和上一汇报周期内的全局流量信息,利用PID流控算法计算下一汇报周期内的流控惩罚延时,使得服务节点根据下一汇报周期内的流控惩罚延时在下一汇报周期内对新增流量(即待处理的流量)进行延时处理,达到对目标应用对象103a进行限流控制的目的。PID流控算法是一种将比例、积分和微分三种运算结合于一体的控制算法。比例反应***的偏差,当比例系数大时,可以加快调节,减小偏差,使***趋于稳定。积分主要是用来消除静差,静差就是指***稳定后输入输出之间依然存在的差值,积分就是通过偏差的累计来抵消***的静差。微分反映***偏差信号的变化率,具有预见性,能预见偏差变化的趋势,产生超前的控制作用,在偏差还没有形成之前,就可以被微分调节作用消除,因此可以改善***的动态性能。
在本实施例中,在每次PID流控算法中,偏差是指此次PID流控算法中统计出的上一汇报周期内的全局流量信息与全局流量配额的差值;比例关系反应此次PID流控算法中统计出的上一汇报周期内的全局流量信息与全局流量配额的比值;积分关系可理解为对过去多个汇报周期的偏差的累积值;微分关系可理解为两个相邻汇报周期的偏差的变化趋势。在积分和微分均为0的情况下,可以根据上一汇报周期内的全局流量信息与全局流量配额的比值,得到下一汇报周期的流控惩罚延时。例如,假设全局流量配额用QPS来衡量,且QPS为在单个汇报周期内最多处理100个访问请求,上一汇报周期内统计出的全局流量信息为500个请求,则服务节点102处理这500个请求需要500/100=5s,因此,需要对后续新增流量执行5s的惩罚延时,即在5s后再处理后续新增流量。
在步骤15c中,流控中心节点将下一汇报周期内的流控惩罚延时下发给至少一个服务节点;至少一个服务节点接收流控中心节点下发的在下一汇报周期内的流控惩罚延时。进而,在步骤16c中,至少一个服务节点根据下一汇报周期内的流控惩罚延时在下一汇报周期内对新增流量进行延时处理,达到对目标应用对象103a进行限流控制的目的。采用PID流控方案,可以及时快速地对分布式服务节点的变化、负载变化等进行快速响应,增加用户的使用体验。
在本申请实施例中,流控中心点101还可以采用基于流量配额和PID反馈相结合的流控方案对为目标应用对象103a提供服务的服务节点102进行限流控制。该限流控制过程主要包括:流控中心点在来自目标应用对象103a的流量处于非相对稳定状态时,采用动态配额流控方案对为目标应用对象103a提供服务的至少一个服务节点进行流量控制,以使来自目标应用对象103a的流量进入相对稳定状态;以及流控中心点在来自目标应用对象103a的流量进入相对稳定状态的情况下,采用PID流控方案对上述至少一个服务节点进行流量控制。
在本实施例中,将来自目标应用对象103a的流量状态大概划分为相对稳定状态和非相对稳定状态。其中,相对稳定状态是指在连续一段时间内来自目标应用对象103a的全局流量波动相对较小的流量状态,在该流量状态下适合采用PID流控方案进行限流控制,有利于快速让来自目标应用对象103a的流量进入稳定状态,且能够及时快速地对分布式服务节点的变化、负载变化等进行快速响应。与相对稳定状态对应的是非相对稳定状态,非相对稳定状态是指来自目标应用对象103a的全局流量波动相对较大的流量状态。例如,一般在流控初始阶段,由于流量控制尚未产生效果,来自目标应用对象103a的全局流量波动相对较大,因此可将目标应用对象103a在流控初始阶段的流量状态视为一种非相对稳定状态。进一步,还可以将来自目标应用对象103a的全局流量小于全局流量配额时的流量状态也视为非相对稳定状态。
进一步,本申请实施例可以采用动态配额流控方案作为PID流控方案的前置阶段,即在流控初始阶段首先采用动态配额流控方案进行流量控制,保证在不会出现流量超调现象的前提下,快速让来自目标应用对象103a的流量进入相对稳定状态,然后再采用PID流控方案对服务节点进行流量控制,使得PID流控快速进入稳定状态。另外,由于动态配额流控方案仅作为PID流控方案的前置阶段,动态配额流控方案的用时在整个流控时间内占比较小,可以有效的避免动态配额流控方案在服务节点动态变更、负载变更场景下无法及时响应的缺陷。
下面通过图1d所示的交互流程,对动态配额流控方案和PID流控方案相结合实现的流量控制过程进行详细说明。如图1d所示,该流量控制过程包括:
11d、流控中心节点获取目标应用对象对应的全局流量配额,并确定为该目标应用对象提供服务的至少一个服务节点。
12d、在流控开始阶段,流控中心节点采用动态配额流控方案对为目标应用对象提供服务的至少一个服务节点进行流量控制。
13d、在采用动态配额流控方案的流控期间,至少一个服务节点在每个汇报周期向流控中心节点上报尚未处理的流量信息。
14d、流控中心节点根据至少一个服务节点在多个连续汇报周期内尚未处理的流量信息,判断来自目标应用对象的流量是否进入相对稳定状态。
15d、若流控中心节点判断来自目标应用对象的流量处于非相对稳定状态,继续采用动态配额流控方案对至少一个服务节点进行流量控制,以使来自目标应用对象的流量进入相对稳定状态。
16d、在来自目标应用对象的流量进入相对稳定状态的情况下,流控中心节点采用PID流控方案对至少一个服务节点进行流量控制。
17d、在采用PID流控方案对至少一个服务节点进行流量控制期间,至少一个服务节点在每个汇报周期向流控中心节点上报的新增流量信息。
18d、流控中心节点根据至少一个服务节点在每个汇报周期上报的新增流量信息,判断来自目标应用对象的流量是否重新进入非相对稳定状态。
19d、在来自目标应用对象的流量重新进入非相对稳定状态时,流控中心节点再次采用动态配额流控方案对至少一个服务节点进行流量控制,并返回执行步骤13d。
关于步骤11d的描述,可参见图1b所示实施例中步骤11b的描述,在此不再赘述。
在步骤12d和13d中,采用动态配额流控方案作为PID流控方案的前置阶段,即在流控初始阶段首先采用动态配额流控方案进行流量控制。在采用动态配额流控方案中,流控中心节点在每个汇报周期内为每个服务节点102分配流量配额并下发给服务节点102;服务节点102根据每个汇报周期内的流量配额对每个汇报周期内待处理的流量进行处理。其中,服务节点102在每个汇报周期内待处理的流量可能会超过相应的流量配额,故服务节点102会维护一个等待(pending)队列,对于超过流控配额的流量会被加入待队列中进行等待。
另外,服务节点102按照设定的汇报周期定期向流控中心节点101上报每个汇报周期内尚未处理的流量信息,这里尚未处理的流量信息是指来自目标应用对象103a的流量。例如,服务节点102可在每个汇报周开始时,基于该汇报周期内可用的流量配额对该汇报周期内待处理的流量进行处理,并可在该汇报周期结束时,将此时等待队列中的流量以及尚未添加到等待队列中的新增流量作为尚未处理的流量信息上报给流控中心节点101。
在步骤14d中,为目标应用对象103a提供服务的至少一个服务节点102在每个汇报周期内尚未处理的流量信息,一定程度上体现了在该汇报周期内来自目标应用对象103a的全局流量情况。基于此,流控中心节点101根据至少一个服务节点102在多个连续汇报周期内尚未处理的流量信息,判断来自目标应用对象103a的流量是否进入相对稳定状态。
可选地,一种具体的判断方式包括:根据至少一个服务节点102在每个汇报周期内上报的尚未处理的流量信息,统计每个汇报周期内的全局流量信息;利用连续多个汇报周期内统计出的全局流量信息来表示连续一段时间内来自目标应用对象103a的全局流量信息;进而根据连续多个汇报周期内的全局流量信息的波动情况来判断来自目标应用对象103a的流量是否处于相对稳定状态。例如,可以预先设定波动范围,如果连续多个汇报周期内的全局流量信息的波动均在设定的波动范围内,则确定来自所述目标应用对象103a的流量进入相对稳定状态;反之,确定来自所述目标应用对象103a的流量依旧处于非相对稳定状态。关于统计全局流量信息的实施方式,可参见前述实施例,在此不再赘述。例如,若连续多个汇报周期为3个汇报周期,在第一个汇报周期统计的全局流量信息为300个流量请求,在第二个汇报周期统计的全局流量信息为302个流量请求,在第三个汇报周期统计的全局流量信息为295个流量请求,则连续三个周期的波动为+2(302-300=2),-7(295-302=-7),若设定的波动范围为10,则可以确定来自目标应用对象103a的流量进入相对稳定状态;若设定的波动范围为5,则可以确定来自目标应用对象103a的流量没有进入相对稳定状态,即处于非相对稳定状态。
在步骤15d中,若判断出来自目标应用对象103a的流量处于非相对稳定状态时,则继续采用动态配额流控方案对至少一个服务节点102进行流量控制,具体流控过程,可参见图1b所示的实施例,在此不再赘述。利用采用动态配额流控方案对至少一个服务节点102进行控制,可以将来自目标应用对象103a的全局流量信息限制在全局流量配额内,避免流量超调现象的产生,很好地保证分布式***的可用性。
在步骤16d中,随着采用动态配额流控方案对至少一个服务节点102进行流量控制的持续,来自目标应用对象103a的流量会逐步进入相对稳定状态;则在来自目标应用对象103a的流量进入相对稳定状态的情况下,可从动态配额流控方案切换为PID流控方案,即采用PID流控方案对至少一个服务节点102继续进行流量控制,采用PID流控方案可以及时有效地对服务节点102动态流量变化、负载变化等问题做出响应,有利于更好地进行流量控制。
在PID流控方案中,流控中心节点101获取目标应用对象103a对应的全局流量配额,并确定为该目标应用对象103a提供服务的至少一个服务节点102,至少一个服务节点102在每个汇报周期向流控中心节点101上报新增流量信息,流控中心节点101根据至少一个服务节点102在上一汇报周期内的新增流量信息,统计上一汇报周期内的全局流量信息,并根据目标应用对象103a对应的全局流量配额和上一汇报周期内的全局流量信息,利用PID流控算法计算下一汇报周期内的流控惩罚延时,进而将下一汇报周期内的流控惩罚延时下发给至少一个服务节点102,至少一个服务节点102根据接收到的下一汇报周期内的流控惩罚延时,在下一汇报周期内对新增流量(即待处理的流量)进行延时处理。
需要说明的是,从动态配额流控方案切换到PID流控方案的第一个汇报周期,服务节点102可以将pending队列中的流量释放出来,并采用流控中心节点101提供的初始流控惩罚延时,对从pending队列中释放出来的流量以及在第一个汇报周期内接收到的新增流量进行延时处理,从而达到流量控制的目的。
在步骤17d中,在采用PID流控方案对至少一个服务节点102进行流量控制期间,每个服务节点102仍会按照设定的汇报周期定期向流控中心节点101上报每个汇报周期内的新增流量信息。例如,服务节点102可在每个汇报周期开始后,利用该汇报周期内的流控惩罚延时,对该汇报周期内待处理的流量进行延时处理;并且可在该汇报周期结束时,向流控中心节点上报该汇报周期内的新增流量信息。除了从动态配额流控方案切换到PID流控方案的第一个汇报周期之外,其它汇报周期内待处理的流量主要是指在该汇报周期内接收到的新增流量。对流控中心节点101来说,在采用PID流控方案对至少一个服务节点102进行流量控制期间,接收至少一个服务节点102在每个汇报周期上报的新增流量信息。
进一步,在步骤18d中,流控中心节点101根据至少一个服务节点102在每个汇报周期上报的新增流量信息,判断来自目标应用对象103a的流量是否重新进入非相对稳定状态。可选地,一种具体的判断方式包括:根据至少一个服务节点102在每个汇报周期上报的新增流量信息,统计每个汇报周期内的全局流量信息;并监测每个汇报周期内的全局流量信息是否低于设定的全局流量配额;当出现汇报周期内的全局流量信息低于设定的全局流量配额的情况时,确定来自目标应用对象103a的流量重新进入非相对稳定状态。
进一步,若判断出来自目标应用对象103a的流量依旧处于相对稳定状态,则继续采用PID流控方案对至少一个服务节点102进行流量控制;若判断出来自目标应用对象103a的流量重新进入非相对稳定状态,则从PID流控方案重新切换至动态配额流控方案,即再次采用动态配额流控方案对至少一个服务节点102进行流量控制,并返回执行步骤13d及后续其它步骤,持续对目标应用对象103a进行流量控制。
在本实施例中,将动态配额流控方案和PID流控方案相结合,即在流量处于非相对稳定状态的情况下,采用动态配额流控方案,可以有效地抑制流量超调现象,也可以缩短后续PID流控方案进入稳态的时间;在流量处于相对稳定状态的情况下,采用PID流控方案,可以及时快速地对分布式服务节点102的变化、负载变化等进行快速响应,增加用户的使用体验。
需要说明的是,图1a所示分布式***可以是任何分布式***,例如可以是数据仓库,也可以是兼容HDFS语义的云存储***。下面以兼容HDFS语义的云存储***为例展开说明。图2a本申请实施例提供的兼容HDFS语义的云存储***,该云存储***是一种分布式文件***,它具有高吞吐量、高容错性等特点,可为具有大数据计算与存储分析需求的用户提供海量数据存储和离线计算等服务。用户通过在该云存储***中创建自己的文件***实例,通过该文件***实例可以管理和访问自己的数据,而且该云存储***允许用户对存储容量及性能进行扩展,且支持单一命名空间可实现不同用户之间的环境隔离,保护用户数据的安全性。
如图2a所示,兼容HDFS语义的云存储***200包括:流控中心节点201以及分布部署的云存储节点202;其中,这些云存储节点202可为不同文件***实例203提供文件管理服务。其中,云存储节点202是服务节点102在云存储***中的具体实现形态,文件***实例203是应用对象103在云存储***200中的具体实现形态。
在云环境中,用户可以在公有云、私有云、混合云或边缘云等云网络中部署弹性计算服务或容器等,由弹性计算服务或容器为其提供所需的云计算服务。其中,弹性计算服务可以是ECS实例、EGS实例等。本实施例的云存储***200可以为这些弹性计算服务或容器提供文件存储和管理功能。这些弹性计算服务或容器需要进行文件存储、创建、打开、读写、删除等操作。鉴于此,用户在云存储***上创建文件***实例,之后,用户的弹性计算服务或容器服务即可访问兼容HDFS语义的云存储***,例如在兼容HDFS语义的云存储***中创建文件目录、打开文件目录、删除文件目录等,也可以在兼容HDFS语义的云存储***中打开文件,读取文件中的数据,或者写入文件等。此外,多个用户创建的文件***实例可以同时访问兼容HDFS语义的云存储***,共享文件和目录,且多个用户的数据相互隔离,不会产生干扰,即兼容HDFS语义的云存储***使支持多用户,用户之间可实现性能隔离。
为了方便用户创建文件***实例,如图2a所示,云存储***200还包括管理节点204,该管理节点204面向用户提供管理界面,用户可以通过该管理界面可以创建文件***实例、为文件***实例配置对应的全局流量配额,例如QPS阈值。管理节点204可以响应管理界面上用户发起的指示创建文件***实例的操作,为用户创建文件***实例;响应管理界面上用户发起的设置全局流量配额的操作,获取文件***实例对应的全局流量配额;以及将全局流量配额提供给流控中心节点201。
其中,管理界面可以是对外提供的人机交互界面,该人机交互界面可以是web页面、应用页面或命令窗等。用户可以通过人机交互界面发起创建文件***实例的操作或者设置全局流量配额的操作。在一可选实施例中,管理节点提供的人机交互界面包括创建控件,用户可以点击创建控件,发起创建文件***实例的操作,管理节点204响应用户发起的创建文件***实例的操作,为用户创建文件***实例;在又一可选实施例中,管理节点204提供的人机交互界面包括设置控件,用户可以点击设置控件,发起设置全局流量配额的操作,管理节点204响应用户设置全局流量配额的操作,为用户设置全局流量配额。
管理节点204在为用户创建文件***实例后,还可以为文件***实例分配至少一个云存储节点202,至少一个云存储节点202可以为文件***实例提供存储服务。用户的弹性计算服务或容器等可以使用文件***实例在云存储节点202中执行打开文件、删除文件、创建文件目录等各种操作。其中,为文件***实例提供存储服务的至少一个云存储节点202可以是固定不变的,也可以是动态变化的,对此不做限定。例如,用户还可以通过管理节点204调整文件***实例对应的QPS阈值的大小;当用户增大或减小QPS阈值时,管理节点204可以相应地为文件***实例增加或减少云存储节点202。或者,管理节点204也可以与流控中心节点201通信,获取文件***实例对应的流量,根据流量动态调整为文件***实例配置的云存储节点202的数量。
在本实施例中,文件***实例对云存储节点202发起的创建文件目录的请求、删除文件目录的请求、打开文件的请求、删除文件的请求、写文件的请求等可以直接到达各云存储节点202,或者,如图2a所示,也可以先到达负载均衡节点205再由负载均衡节点205将这些请求分发到各云存储节点202。在该过程中,流控中心节点201可以根据文件***实例对应的QPS阈值,对文件***实例进行限流控制;其中,对文件***实例的限流控制主要是对为文件***实例提供存储服务的云存储节点202进行流量控制的过程。其中,对云存储节点202进行流量控制的过程可以采用前述实施例中的动态配额流控方案,也可以采用PID流控方案,还可以采用动态配额流控方案与PID流控方案结合的流控方案,对此不做限定。
其中,采用动态配额流控方案与PID流控方案结合的流控方案的流控过程如图2b所示,包括以下步骤:
21b、管理节点响应管理界面上用户发起的指示创建文件***实例的操作,为用户创建文件***实例。
22b、管理节点响应管理界面上用户发起的设置全局流量配额的操作,获取文件***实例对应的全局流量配额。
23b、管理节点将全局流量配额和为文件***实例提供存储服务的至少一个云存储节点的信息提供给流控中心节点。
24b、在流控开始阶段,流控中心节点采用动态配额流控方案对为文件***实例提供服务的至少一个云存储节点进行流量控制。
25b、在采用动态配额流控方案的流控期间,至少一个云存储节点在每个汇报周期向流控中心节点上报尚未处理的流量信息。
26b、流控中心节点根据至少一个云存储节点在多个连续汇报周期内尚未处理的流量信息,判断来自文件***实例的流量是否进入相对稳定状态。
27b、若流控中心节点判断来自文件***实例的流量处于非相对稳定状态,继续采用动态配额流控方案对至少一个云存储节点进行流量控制,以使来自文件***实例的流量进入相对稳定状态。
28b、在来自文件***实例的流量进入相对稳定状态的情况下,流控中心节点采用PID流控方案对至少一个云存储节点进行流量控制。
29b、在采用PID流控方案对至少一个云存储节点进行流量控制期间,至少一个云存储节点在每个汇报周期向流控中心节点上报的新增流量信息。
30b、流控中心节点根据至少一个云存储节点在每个汇报周期上报的新增流量信息,判断来自文件***实例的流量是否重新进入非相对稳定状态。
31b、在来自文件***实例的流量重新进入非相对稳定状态时,流控中心节点再次采用动态配额流控方案对至少一个云存储节点进行流量控制,并返回执行步骤25b。
关于图2b所示流量控制的详细过程可参见前述实施例,在此不再赘述。
在一可选实施例中,为了方便用户及时了解自己创建的文件***实例的状态,管理节点204还可以在管理界面上向用户展示与文件***实例相关的一些信息,例如文件***实例的运行状态、运行时间等。进一步,流控中心节点101还可以将对至少一个云存储节点202进行流量控制的过程和/或流量控制过程中的相关参数提供给管理节点204;管理节点204可以输出对至少一个云存储节点202进行流量控制的过程和/或流量控制过程中的相关参数。流量控制过程中的相关参数可以是但不限于为文件***实例提供存储服务的云存储节点、每个云存储节点在各汇报周期内的流控惩罚延时、流量配额、全局流量信息等。
在本实施例中,也不限定利用管理节点204输出对至少一个云存储节点202进行流量控制的过程和/或流量控制过程中的相关参数的实施方式。例如,管理节点204可以通过显示屏幕输出对至少一个云存储节点202进行流量控制的过程和/或流量控制过程中的相关参数。又例如,管理节点204可以将对至少一个云存储节点202进行流量控制的过程和/或流量控制过程中的相关参数发送给用户的终端设备;用户可以通过终端设备实时查看对至少一个云存储节点202进行流量控制的过程和/或流量控制过程中的相关参数。可选地,可以采用图表的方式对流量控制过程和/或流量控制过程中的相关参数进行展示。
需要说明的是,本实施例提供的兼容HDFS语义的云存储***与图1a提供的分布式***区别在于,本实施例是图1a所示分布式***的一种具体实现形态,本实施例中,增加了管理节点,其他内容均与图1a所示的分布式***相同或相似,在此不再赘述。
图3为本申请示例性实施例提供的一种流量控制方法的流程示意图,适用于分布式***中的流控中心节点,如图3所示,该方法包括:
31、确定为分布式***中的目标应用对象提供服务的至少一个服务节点;
32、若来自目标应用对象的流量处于非相对稳定状态,采用动态配额流控方案对至少一个服务节点进行流量控制,以使来自目标应用对象的流量进入相对稳定状态;
33、在来自目标应用对象的流量进入相对稳定状态的情况下,采用PID流控方案对至少一个服务节点进行流量控制。
在步骤31中,应用对象是需要使用服务节点102所提供的服务的对象,可以是用户、租户、应用程序、程序模块、服务***或云场景中提供某种服务的实例,例如文件***实例,ECS实例、EGS实例等。流控中心节点针对任一应用对象进行流量控制的过程相同或相似,故在本申请下述实施例中以针对目标应用对象进行流量控制为例进行说明。
在本实施例中,为目标应用对象提供服务的至少一个服务节点,可以是固定不变的几个服务节点,或者,也可以是动态变化的服务节点。另外,在本实施例中,也不限定为目标应用对象提供服务的至少一个服务节点的数量,例如可以是一个,也可以是多个,例如2个、5个、10个、50个或300个等。可选地,上述至少一个服务节点在获知自己可以为目标应用对象提供服务时,可以向流控中心节点进行注册并告知其标识信息,例如服务地址、节点ID、节点名称等。流控中心节点可根据服务节点的注册信息确定可为目标应用对象提供服务的至少一个服务节点。详细内容可参见前述实施例,在此不再赘述。
在流控开始阶段,采用动态配额流控方案对至少一个服务节点进行流量控制;在采用动态配额流控方案中,流控中心节点在每个汇报周期内为每个服务节点分配流量配额并下发给服务节点;服务节点根据每个汇报周期内的流量配额对每个汇报周期内待处理的流量进行处理。其中,服务节点在每个汇报周期内待处理的流量可能会超过相应的流量配额,故服务节点会维护一个等待(pending)队列,对于超过流控配额的流量会被加入待队列中进行等待。
另外,服务节点按照设定的汇报周期定期向流控中心节点上报每个汇报周期内尚未处理的流量信息,这里尚未处理的流量信息是指来自目标应用对象的流量。例如,服务节点可在每个汇报周开始时,基于该汇报周期内可用的流量配额对该汇报周期内待处理的流量进行处理,并可在该汇报周期结束时,将此时等待队列中的流量以及尚未添加到等待队列中的新增流量作为尚未处理的流量信息上报给流控中心节点。
在一可选实施例中,在接收至少一个服务节点在每个汇报周期上报的其尚未处理的流量信息期间,方法还包括:采用PID流控方案对至少一个服务节点进行流量控制;或者采用动态配额流控方案对至少一个服务节点进行流量控制。
进一步可选地,在采用动态配额流控方案对至少一个服务节点进行流量控制期间,接收至少一个服务节点在每个汇报周期上报的已经位于其等待队列中的流量信息和尚未加入其等待队列中的新增流量信息,作为至少一个服务节点在每个汇报周期尚未处理的流量信息;或者在采用PID流控方案对至少一个服务节点进行流量控制期间,接收至少一个服务节点在每个汇报周期上报的新增流量信息,作为至少一个服务节点在每个汇报周期尚未处理的流量信息。
为目标应用对象提供服务的至少一个服务节点在每个汇报周期内尚未处理的流量信息,一定程度上体现了在该汇报周期内来自目标应用对象的全局流量情况。基于此,流控中心节点根据至少一个服务节点在多个连续汇报周期内尚未处理的流量信息,判断来自目标应用对象的流量是否进入相对稳定状态。
可选地,一种具体的判断方式包括:根据至少一个服务节点在每个个汇报周期内上报的尚未处理的流量信息,统计每个汇报周期内的全局流量信息;利用连续多个汇报周期内统计出的全局流量信息来表示连续一段时间内来自目标应用对象的全局流量信息;进而根据连续多个汇报周期内的全局流量信息的波动情况来判断来自目标应用对象的流量是否处于相对稳定状态。例如,可以预先设定波动范围,如果连续多个汇报周期内的全局流量信息的波动均在设定的波动范围内,则确定来自所述目标应用对象的流量进入相对稳定状态;反之,确定来自所述目标应用对象的流量依旧处于非相对稳定状态。详细内容可参见前述实施例,在此不再赘述。
在步骤32中,若判断出来自目标应用对象的流量处于非相对稳定状态时,则继续采用动态配额流控方案对至少一个服务节点进行流量控制。具体地,根据至少一个服务节点在上一汇报周期内尚未处理的流量信息之间的比例关系和预设的全局流量配额,确定至少一个服务节点在下一汇报周期内的流量配额;将至少一个服务节点在下一汇报周期内的流量配额分别下发给至少一个服务节点,以供至少一个服务节点根据各自在下一汇报周期内的流量配额对下一汇报周期内待处理的流量进行处理,详细内容可参见前述实施例,在此不再赘述。
在步骤33中,随着采用动态配额流控方案对至少一个服务节点进行流量控制的持续,来自目标应用对象的流量会逐步进入相对稳定状态;则在来自目标应用对象的流量进入相对稳定状态的情况下,可从动态配额流控方案切换为PID流控方案,即采用PID流控方案对至少一个服务节点继续进行流量控制,采用PID流控方案可以及时有效地对服务节点动态流量变化、负载变化等问题做出响应,有利于更好地进行流量控制。
在PID流控方案中,流控中心节点获取目标应用对象对应的全局流量配额,并确定为该目标应用对象提供服务的至少一个服务节点,至少一个服务节点在每个汇报周期向流控中心节点上报新增流量信息,流控中心节点根据至少一个服务节点在上一汇报周期内的新增流量信息,统计上一汇报周期内的全局流量信息,并根据目标应用对象对应的全局流量配额和上一汇报周期内的全局流量信息,利用PID流控算法计算下一汇报周期内的流控惩罚延时,进而将下一汇报周期内的流控惩罚延时下发给至少一个服务节点,至少一个服务节点根据接收到的下一汇报周期内的流控惩罚延时,在下一汇报周期内对新增流量(待处理流量)进行延时处理。
需要说明的是,从动态配额流控方案切换到PID流控方案的第一个汇报周期,服务节点可以将pending队列中的流量释放出来,并采用流控中心节点提供的初始流控惩罚延时,对从pending队列中释放出来的流量以及在第一个汇报周期内接收到的新增流量进行延时处理,从而达到流量控制的目的。
在一可选实施例中,分布式***为兼容HDFS语义的云存储***,目标应用对象为运行于云存储***上的文件***实例。关于兼容HDFS语义的云存储***的详细内容可参见前述实施例,在此不再赘述。
在一可选实施例中,流控中心节点可以接收云存储***中的管理节点提供的文件***实例对应的全局流量配额;其中,全局流量配额是用户通过管理节点提供的管理界面配置的。关于管理界面的详细内容可参见前述实施例,在此不再赘述。
在又一可选实施例中,流控中心节点可以将对至少一个服务节点进行流量控制的过程和/或流量控制过程中的相关参数提供给管理节点,以供管理节点输出对至少一个服务节点进行流量控制的过程和/或流量控制过程中的相关参数。详细内容可参见前述实施例,在此不再赘述。
图4为本申请示例性实施例提供的另一种流量控制方法的流程示意图,适用于分布式***为目标应用对象提供服务的任一服务节点,如图4所示,该方法包括:
41、向分布式***中的流控中心节点提供当前汇报周期内尚未处理的流量信息,以供流控中心节点判断来自目标应用对象的流量是否进入相对稳定状态;
42、接收流控中心节点在判断出来自目标应用对象的流量进入非相对稳定状态时返回的服务节点在下一汇报周期内的流量配额;
43、根据在下一汇报周期内的流量配额对下一汇报周期内待处理的流量进行处理,以使来自目标应用对象的流量进入相对稳定状态。
在一可选实施例中,服务节点接收到流控中心节点在来自目标应用对象的流量进入相对稳定状态时返回的下一汇报周期内的流控惩罚延时;根据所述下一汇报周期内的流控惩罚延时对下一汇报周期内待处理的流量进行延时处理。详细内容可参见前述实施例,在此不再赘述。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤31至步骤3的执行主体可以为设备A;又比如,步骤31和32的执行主体可以为设备A,步骤33的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如31、32等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图5为本申请示例性实施例提供的一种流控中心节点的结构示意图。如图5所示,该流控中心节点包括:存储器54和处理器55。
存储器54,用于存储计算机程序,并可被配置为存储其它各种数据以支持在流控中心节点上的操作。这些数据的示例包括用于在流控中心节点上操作的任何应用程序或方法的指令等。
存储器54可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器55,与存储器54耦合,用于执行存储器54中的计算机程序,以用于:确定为分布式***中的目标应用对象提供服务的至少一个服务节点;若来自目标应用对象的流量处于非相对稳定状态,采用动态配额流控方案对至少一个服务节点进行流量控制,以使来自目标应用对象的流量进入相对稳定状态;以及在来自目标应用对象的流量进入相对稳定状态的情况下,采用PID流控方案对至少一个服务节点进行流量控制。
在一可选实施例中,处理器55还用于:在流控开始阶段,采用动态配额流控方案对至少一个服务节点进行流量控制;以及在流量控制期间,接收至少一个服务节点在每个汇报周期上报的其尚未处理的流量信息;根据至少一个服务节点在连续多个汇报周期尚未处理的流量信息,判断来自应用对象的流量是否进入相对稳定状态。
在一可选实施例中,处理器55在根据至少一个服务节点尚未处理的流量信息,判断来自应用对象的流量是否进入相对稳定状态时,具体用于:根据至少一个服务节点在每个汇报周期尚未处理的流量信息,统计每个汇报周期内的全局流量信息;若连续多个汇报周期内的全局流量信息的波动均在设定的波动范围内,确定来自目标应用对象的流量进入相对稳定状态。
在一可选实施例中,处理器55在采用动态配额流控方案对至少一个服务节点进行流量控制时,具体用于:根据至少一个服务节点在上一汇报周期内尚未处理的流量信息之间的比例关系和预设的全局流量配额,确定至少一个服务节点在下一汇报周期内的流量配额;将至少一个服务节点在下一汇报周期内的流量配额分别下发给至少一个服务节点,以供至少一个服务节点根据各自在下一汇报周期内的流量配额对下一汇报周期内待处理的流量进行处理。
在一可选实施例中,处理器55在采用PID流控方案对至少一个服务节点进行流量控制时,具体用于:根据上一汇报周期内的全局流量信息和预设的全局流量配额,计算下一汇报周期内的流控惩罚延时;将下一汇报周期内的流控惩罚延时下发给至少一个服务节点,以供至少一个服务节点对下一汇报周期内待处理的流量进行延时处理。
在一可选实施例中,处理器55在在接收至少一个服务节点在每个汇报周期上报的其尚未处理的流量信息期间,还用于:采用PID流控方案对至少一个服务节点进行流量控制;或者采用动态配额流控方案对至少一个服务节点进行流量控制。
在一可选实施例中,处理器55在接收至少一个服务节点在每个汇报周期上报的其尚未处理的流量信息时,具体用于:在采用动态配额流控方案对至少一个服务节点进行流量控制期间,接收至少一个服务节点在每个汇报周期上报的已经位于其等待队列中的流量信息和尚未加入其等待队列中的新增流量信息,作为至少一个服务节点在每个汇报周期尚未处理的流量信息;或者在采用PID流控方案对至少一个服务节点进行流量控制期间,接收至少一个服务节点在每个汇报周期上报的新增流量信息,作为至少一个服务节点在每个汇报周期尚未处理的流量信息。
在一可选实施例中,分布式***为兼容HDFS语义的云存储***,目标应用对象为运行于云存储***上的文件***实例,处理器55还用于:接收云存储***中的管理节点提供的文件***实例对应的全局流量配额;其中,全局流量配额是用户通过管理节点提供的管理界面配置的。
在一可选实施例中,处理器55还用于:将对至少一个服务节点进行流量控制的过程和/或流量控制过程中的相关参数提供给管理节点,以供管理节点输出对至少一个服务节点进行流量控制的过程和/或流量控制过程中的相关参数。
进一步,如图5所示,该流控中心节点还包括:通信组件56、显示器57、电源组件58、音频组件59等其它组件。图中仅示意性给出部分组件,并不意味着流控中心节点只包括图5所示组件。另外,图5中虚线框所示组件为可选组件,而非必选组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述流量控制方法实施例中可由流控中心节点执行的各步骤。
图6为本申请示例性实施例提供的一种服务节点的结构示意图。如图6所示,该服务节点包括:存储器64、处理器65和通信组件66。
存储器64,用于存储计算机程序,并可被配置为存储其它各种数据以支持在服务节点上的操作。这些数据的示例包括用于在服务节点上操作的任何应用程序或方法的指令等。
存储器64可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器65,与存储器64耦合,用于执行存储器64中的计算机程序,以用于:通过通信组件66向分布式***中的流控中心节点提供当前汇报周期内尚未处理的流量信息,以供流控中心节点判断来自目标应用对象的流量是否进入相对稳定状态;通过通信组件66接收流控中心节点在判断出来自目标应用对象的流量进入非相对稳定状态时返回的服务节点在下一汇报周期内的流量配额;根据在下一汇报周期内的流量配额对下一汇报周期内待处理的流量进行处理,以使来自目标应用对象的流量进入相对稳定状态。
在一可选实施例中,处理器65还用于:通过通信组件66接收到流控中心节点在来自目标应用对象的流量进入相对稳定状态时返回的下一汇报周期内的流控惩罚延时;根据下一汇报周期内的流控惩罚延时对下一汇报周期内待处理的流量进行延时处理。
进一步,如图6所示,该服务节点还包括:显示器67、电源组件68、音频组件69等其它组件。图中仅示意性给出部分组件,并不意味着服务节点只包括图6所示组件。另外,图6中虚线框所示组件为可选组件,而非必选组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述流量控制方法实施例中可由服务节点执行的各步骤。
上述图5和图6中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述图5和图6中的显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
上述图5和图6中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理***,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述图5和图6中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (25)
1.一种分布式***,包括:流控中心节点以及为不同应用对象提供服务的多个服务节点;
所述流控中心节点,用于在来自目标应用对象的流量处于非相对稳定状态时,采用动态配额流控方案对为所述目标应用对象提供服务的至少一个服务节点进行流量控制,以使来自所述目标应用对象的流量进入相对稳定状态;以及在来自所述目标应用对象的流量进入相对稳定状态的情况下,采用PID流控方案对所述至少一个服务节点进行流量控制。
2.根据权利要求1所述的***,其中,所述流控中心节点还用于:
在流控开始阶段,采用动态配额流控方案对所述至少一个服务节点进行流量控制;以及
在所述流量控制期间,接收所述至少一个服务节点在每个汇报周期上报的其尚未处理的流量信息;
根据所述至少一个服务节点在连续多个汇报周期尚未处理的流量信息,判断来自所述目标应用对象的流量是否进入相对稳定状态。
3.根据权利要求2所述的***,其中,所述流控中心节点具体用于:
根据所述至少一个服务节点在每个汇报周期尚未处理的流量信息,统计每个汇报周期内的全局流量信息;以及
在连续多个汇报周期内的全局流量信息的波动均在设定的波动范围内的情况下,确定来自所述目标应用对象的流量进入相对稳定状态。
4.根据权利要求2所述的***,其中,所述流控中心节点在采用动态配额流控方案对所述至少一个服务节点进行流量控制时,具体用于:
根据所述至少一个服务节点在上一汇报周期内尚未处理的流量信息之间的比例关系和预设的全局流量配额,确定所述至少一个服务节点在下一汇报周期内的流量配额;
将所述至少一个服务节点在下一汇报周期内的流量配额分别下发给所述至少一个服务节点,以供所述至少一个服务节点根据各自在下一汇报周期内的流量配额对所述下一汇报周期内待处理的流量进行处理。
5.根据权利要求2所述的***,其中,所述流控中心节点在采用PID流控方案对所述至少一个服务节点进行流量控制时,具体用于:
根据上一汇报周期内的全局流量信息和预设的全局流量配额,计算下一汇报周期内的流控惩罚延时;
将所述下一汇报周期内的流控惩罚延时下发给所述至少一个服务节点,以供所述至少一个服务节点对下一汇报周期内待处理的流量进行延时处理。
6.根据权利要求1-5任一项所述的***,其中,所述流控中心节点还用于:
在采用PID流控方案对所述至少一个服务节点进行流量控制期间,接收所述至少一个服务节点在每个汇报周期上报的新增流量信息;
根据所述至少一个服务节点在每个汇报周期上报的新增流量信息,判断来自所述目标应用对象的流量是否重新进入非相对稳定状态;以及
在来自所述目标应用对象的流量重新进入非相对稳定状态时,再次采用动态配额流控方案对所述至少一个服务节点进行流量控制。
7.根据权利要求6所述的***,其中,所述流控中心节点具体用于:
根据所述至少一个服务节点在每个汇报周期上报的新增流量信息,统计每个汇报周期内的全局流量信息;以及
当出现汇报周期内的全局流量信息低于设定的全局流量配额的情况时,确定来自所述目标应用对象的流量重新进入非相对稳定状态。
8.根据权利要求4或5所述的***,其中,所述分布式***为兼容HDFS语义的云存储***,所述目标应用对象为运行于所述云存储***上的文件***实例。
9.根据权利要求8所述的***,其中,所述云存储***还包括:
管理节点,用于响应管理界面上用户发起的指示创建文件***实例的操作,为所述用户创建文件***实例;响应所述管理界面上用户发起的设置全局流量配额的操作,获取所述文件***实例对应的全局流量配额;以及将所述全局流量配额提供给所述流控中心节点。
10.根据权利要求9所述的***,其中,所述流控中心节点还用于:将对所述至少一个服务节点进行流量控制的过程和/或流量控制过程中的相关参数提供给所述管理节点;
所述管理节点,还用于输出对所述至少一个服务节点进行流量控制的过程和/或流量控制过程中的相关参数。
11.一种流量控制方法,适用于分布式***中的流控中心节点,所述方法包括:
确定为分布式***中的目标应用对象提供服务的至少一个服务节点;
若来自所述目标应用对象的流量处于非相对稳定状态,采用动态配额流控方案对所述至少一个服务节点进行流量控制,以使来自所述目标应用对象的流量进入相对稳定状态;以及
在来自所述目标应用对象的流量进入相对稳定状态的情况下,采用PID流控方案对所述至少一个服务节点进行流量控制。
12.根据权利要求11所述的方法,其中,还包括:
在流控开始阶段,采用动态配额流控方案对所述至少一个服务节点进行流量控制;以及
在所述流量控制期间,接收所述至少一个服务节点在每个汇报周期上报的其尚未处理的流量信息;
根据所述至少一个服务节点在连续多个汇报周期尚未处理的流量信息,判断来自所述应用对象的流量是否进入相对稳定状态。
13.根据权利要求12所述的方法,其中,根据所述至少一个服务节点尚未处理的流量信息,判断来自所述应用对象的流量是否进入相对稳定状态,包括:
根据所述至少一个服务节点在每个汇报周期尚未处理的流量信息,统计每个汇报周期内的全局流量信息;
若连续多个汇报周期内的全局流量信息的波动均在设定的波动范围内,确定来自所述目标应用对象的流量进入相对稳定状态。
14.根据权利要求12所述的方法,其中,采用动态配额流控方案对所述至少一个服务节点进行流量控制,包括:
根据所述至少一个服务节点在上一汇报周期内尚未处理的流量信息之间的比例关系和预设的全局流量配额,确定所述至少一个服务节点在下一汇报周期内的流量配额;
将所述至少一个服务节点在下一汇报周期内的流量配额分别下发给所述至少一个服务节点,以供所述至少一个服务节点根据各自在下一汇报周期内的流量配额对所述下一汇报周期内待处理的流量进行处理。
15.根据权利要求12所述的方法,其中,采用PID流控方案对所述至少一个服务节点进行流量控制,包括:
根据上一汇报周期内的全局流量信息和预设的全局流量配额,计算下一汇报周期内的流控惩罚延时;
将所述下一汇报周期内的流控惩罚延时下发给所述至少一个服务节点,以供所述至少一个服务节点对下一汇报周期内待处理的流量进行延时处理。
16.根据权利要求12-15任一项所述的方法,在接收所述至少一个服务节点在每个汇报周期上报的其尚未处理的流量信息期间,所述方法还包括:
采用PID流控方案对所述至少一个服务节点进行流量控制;或者
采用动态配额流控方案对所述至少一个服务节点进行流量控制。
17.根据权利要求16所述的方法,其中,接收所述至少一个服务节点在每个汇报周期上报的其尚未处理的流量信息,包括:
在采用动态配额流控方案对所述至少一个服务节点进行流量控制期间,接收所述至少一个服务节点在每个汇报周期上报的已经位于其等待队列中的流量信息和尚未加入其等待队列中的新增流量信息,作为所述至少一个服务节点在每个汇报周期尚未处理的流量信息;
或者
在采用PID流控方案对所述至少一个服务节点进行流量控制期间,接收所述至少一个服务节点在每个汇报周期上报的新增流量信息,作为所述至少一个服务节点在每个汇报周期尚未处理的流量信息。
18.根据权利要求14或15所述的方法,其中,所述分布式***为兼容HDFS语义的云存储***,所述目标应用对象为运行于所述云存储***上的文件***实例。
19.根据权利要求18所述的方法,还包括:
接收所述云存储***中的管理节点提供的所述文件***实例对应的全局流量配额;其中,所述全局流量配额是用户通过所述管理节点提供的管理界面配置的。
20.根据权利要求19所述的方法,还包括:
将对所述至少一个服务节点进行流量控制的过程和/或流量控制过程中的相关参数提供给所述管理节点,以供所述管理节点输出对所述至少一个服务节点进行流量控制的过程和/或流量控制过程中的相关参数。
21.一种流量控制方法,适用于分布式***为目标应用对象提供服务的任一服务节点,所述方法包括:
向分布式***中的流控中心节点提供当前汇报周期内尚未处理的流量信息,以供所述流控中心节点判断来自所述目标应用对象的流量是否进入相对稳定状态;
接收所述流控中心节点在判断出来自所述目标应用对象的流量进入非相对稳定状态时返回的所述服务节点在下一汇报周期内的流量配额;
根据在下一汇报周期内的流量配额对下一汇报周期内待处理的流量进行处理,以使来自所述目标应用对象的流量进入相对稳定状态。
22.根据权利要求21所述的方法,还包括:
接收到所述流控中心节点在来自所述目标应用对象的流量进入相对稳定状态时返回的下一汇报周期内的流控惩罚延时;
根据所述下一汇报周期内的流控惩罚延时对下一汇报周期内待处理的流量进行延时处理。
23.一种流控中心节点,其包括:存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:
确定为分布式***中的目标应用对象提供服务的至少一个服务节点;
若来自所述目标应用对象的流量处于非相对稳定状态,采用动态配额流控方案对所述至少一个服务节点进行流量控制,以使来自所述目标应用对象的流量进入相对稳定状态;以及
在来自所述目标应用对象的流量进入相对稳定状态的情况下,采用PID流控方案对所述至少一个服务节点进行流量控制。
24.一种服务节点,其包括:处理器、存储器和通信组件;
所述存储器,用于存储计算机程序;
所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:
通过通信组件向分布式***中的流控中心节点提供当前汇报周期内尚未处理的流量信息,以供所述流控中心节点判断来自所述目标应用对象的流量是否进入相对稳定状态;
通过通信组件接收所述流控中心节点在判断出来自所述目标应用对象的流量进入非相对稳定状态时返回的所述服务节点在下一汇报周期内的流量配额;
根据在下一汇报周期内的流量配额对下一汇报周期内待处理的流量进行处理,以使来自所述目标应用对象的流量进入相对稳定状态。
25.一种存储有计算机程序的计算机可读存储介质,其中,当所述计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现权利要求11-22中任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010421729.1A CN113301076B (zh) | 2020-05-18 | 2020-05-18 | 流量控制方法、分布式***、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010421729.1A CN113301076B (zh) | 2020-05-18 | 2020-05-18 | 流量控制方法、分布式***、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113301076A true CN113301076A (zh) | 2021-08-24 |
CN113301076B CN113301076B (zh) | 2022-05-06 |
Family
ID=77318072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010421729.1A Active CN113301076B (zh) | 2020-05-18 | 2020-05-18 | 流量控制方法、分布式***、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113301076B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114389905A (zh) * | 2021-12-08 | 2022-04-22 | 阿里巴巴(中国)有限公司 | 网络流量统计方法、相关装置和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060041644A1 (en) * | 2004-07-16 | 2006-02-23 | Henseler David A | Unified system services layer for a distributed processing system |
CN101252545A (zh) * | 2008-04-11 | 2008-08-27 | 杭州华三通信技术有限公司 | 一种流控信息处理方法和装置 |
CN102355425A (zh) * | 2011-10-26 | 2012-02-15 | 深信服网络科技(深圳)有限公司 | 一种网络流量控制方法和设备 |
CN103744808A (zh) * | 2013-12-31 | 2014-04-23 | 百度在线网络技术(北京)有限公司 | 一种用于控制i/o请求的方法与设备 |
CN104408656A (zh) * | 2014-10-29 | 2015-03-11 | 中国建设银行股份有限公司 | 动态调整流控阈值的方法及*** |
CN111083058A (zh) * | 2019-12-04 | 2020-04-28 | 百度在线网络技术(北京)有限公司 | 内容分发网络服务限流方法及电子设备 |
-
2020
- 2020-05-18 CN CN202010421729.1A patent/CN113301076B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060041644A1 (en) * | 2004-07-16 | 2006-02-23 | Henseler David A | Unified system services layer for a distributed processing system |
CN101252545A (zh) * | 2008-04-11 | 2008-08-27 | 杭州华三通信技术有限公司 | 一种流控信息处理方法和装置 |
CN102355425A (zh) * | 2011-10-26 | 2012-02-15 | 深信服网络科技(深圳)有限公司 | 一种网络流量控制方法和设备 |
CN103744808A (zh) * | 2013-12-31 | 2014-04-23 | 百度在线网络技术(北京)有限公司 | 一种用于控制i/o请求的方法与设备 |
CN104408656A (zh) * | 2014-10-29 | 2015-03-11 | 中国建设银行股份有限公司 | 动态调整流控阈值的方法及*** |
CN111083058A (zh) * | 2019-12-04 | 2020-04-28 | 百度在线网络技术(北京)有限公司 | 内容分发网络服务限流方法及电子设备 |
Non-Patent Citations (1)
Title |
---|
C84F3109853B: "流量控制", 《简书》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114389905A (zh) * | 2021-12-08 | 2022-04-22 | 阿里巴巴(中国)有限公司 | 网络流量统计方法、相关装置和介质 |
CN114389905B (zh) * | 2021-12-08 | 2023-10-13 | 阿里巴巴(中国)有限公司 | 网络流量统计方法、相关装置和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113301076B (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113301075B (zh) | 流量控制方法、分布式***、设备及存储介质 | |
CN115633050B (zh) | 镜像管理方法、设备及存储介质 | |
CN113726846B (zh) | 边缘云***、资源调度方法、设备及存储介质 | |
CN113301078B (zh) | 网络***、服务部署与网络划分方法、设备及存储介质 | |
CN116170317A (zh) | 网络***、服务提供与资源调度方法、设备及存储介质 | |
EP3058705B1 (en) | Data classification for adaptive synchronization | |
CN110908774B (zh) | 一种资源调度方法、设备、***及存储介质 | |
CN110933178B (zh) | 调整集群***内的节点配置的方法及服务器 | |
CN114072767B (zh) | 资源调度、申请与定价方法、设备、***及存储介质 | |
CN113553190B (zh) | 计算集群***、调度方法、设备及存储介质 | |
CN111800285A (zh) | 实例迁移方法和装置以及电子设备 | |
CN113315671A (zh) | 流量限速与信息配置方法、路由节点、***及存储介质 | |
WO2023221846A1 (zh) | 计算集群及其数据采集方法、设备及存储介质 | |
CN112650575A (zh) | 资源调度方法、装置和云端服务*** | |
CN113301076B (zh) | 流量控制方法、分布式***、设备及存储介质 | |
CN114996134A (zh) | 容器化部署方法、电子设备及存储介质 | |
CN113728294B (zh) | 功耗控制与方案生成方法、设备、***及存储介质 | |
CN110275770B (zh) | 任务均衡调度方法、***、节点及电子设备 | |
CN109960572B (zh) | 设备资源管理方法和装置以及智能终端 | |
CN112395103B (zh) | 延迟消息发送方法、装置及存储介质 | |
CN115658287A (zh) | 一种用于调度运行单元的方法、设备、介质及程序产品 | |
CN112953993B (zh) | 资源调度方法、设备、网络***及存储介质 | |
CN111459653B (zh) | 集群调度方法、装置和***以及电子设备 | |
CN113553194A (zh) | 硬件资源管理方法、设备及存储介质 | |
CN112149964A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230614 Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province Patentee after: Aliyun Computing Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Patentee before: ALIBABA GROUP HOLDING Ltd. |
|
TR01 | Transfer of patent right |