CN116800689B - 一种流量控制方法、节点、分布式系统及存储介质 - Google Patents
一种流量控制方法、节点、分布式系统及存储介质 Download PDFInfo
- Publication number
- CN116800689B CN116800689B CN202311043113.5A CN202311043113A CN116800689B CN 116800689 B CN116800689 B CN 116800689B CN 202311043113 A CN202311043113 A CN 202311043113A CN 116800689 B CN116800689 B CN 116800689B
- Authority
- CN
- China
- Prior art keywords
- time window
- access requests
- target
- passive
- amount
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012545 processing Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 7
- 230000002159 abnormal effect Effects 0.000 claims description 6
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 7
- 101100134058 Caenorhabditis elegans nth-1 gene Proteins 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- 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/10015—Access to distributed or replicated servers, e.g. using brokers
-
- 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]
-
- 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/50—Network services
- H04L67/53—Network services using third party service providers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本说明书实施例提供了一种流量控制方法、节点、分布式系统及存储介质。在对第三方平台向商品提供方系统发起的访问请求进行流量控制的场景,考虑到被动访问请求的数量和主动访问请求的数量受到商品提供方系统单位时间内所能承载的访问请求的最大数量的限制,因而可以基于当前时间窗口之前的一个或多个历史时间窗口内被动访问请求的数量,实时的调整当前时间窗口的主动访问请求的最大准入量,即主动访问请求的数量可以基于过去一段时间内被动访问请求的数量实时调整,从而既能保证优先级较高的被动访问请求被及时处理,也可以最大化的利用商品提供方系统提供的接口资源。
Description
技术领域
本说明书实施例涉及计算机技术领域,尤其涉及一种流量控制方法、节点、分布式系统及存储介质。
背景技术
目前,很多商品提供方均会在第三方平台展示自身提供的商品,以便用户可以通过第三方平台查看或购买自身提供的商品。通常,商品提供方的业务系统(以下称为商品提供方系统)会提供一个接口给第三方平台,以便第三方平台可以通过该接口访问商品提供方系统。一般而言,第三方平台向商品提供方系统发起的访问请求可以分类两类,一类是用户通过第三方平台向商品提供方系统发起的访问请求,即被动访问请求,另一类是第三方平台主动向商品提供方系统发起的访问请求,即主动访问请求。由于商品提供方系统的处理资源有限,因此,商品提供方系统往往会限制第三方平台发送的访问请求的数量,即被动访问请求和主动访问请求的数量不能超出商品提供方系统所能承载的访问请求数量的上限值。
为了不影响用户体验,用户发起的被动访问请求通常需要及时响应,而第三方平台直接发起的主动访问请求是用于从商品提供方系统获取商品信息的,因而,也需要尽量最大化利用商品提供方系统所能提供的接口资源,以及时获取到最新的商品信息。但是,目前的流量控制方案既无法保证被动访问请求被及时处理,也无法最大化的利用商品提供方系统提供的接口资源以及时获取最新的商品信息。
发明内容
为克服相关技术中存在的问题,本说明书实施例提供了一种流量控制方法、节点、分布式系统及存储介质。
根据本说明书实施例的第一方面,提供一种流量控制方法 ,所述方法用于控制第三方平台向商品提供方系统发起的访问请求的数量,其中,所述访问请求包括用户通过所述第三方平台向所述商品提供方系统发起的被动访问请求,以及所述第三方平台直接向所述商品提供方系统发起的主动访问请求,所述方法包括:
获取历史时间窗口内的所述被动访问请求的数量,其中,所述历史时间窗口为当前时间窗口之前的一个或多个时间窗口;
基于所述商品提供方系统在单位时间内可承接的访问请求数量的上限值,以及各历史时间窗口内的所述被动访问请求的数量,确定所述当前时间窗口内的所述主动访问请求的最大准入量,以控制所述第三方平台在所述当前时间窗口内发起的所述主动访问请求的数量不超过所述最大准入量。
在一些实施例中,所述获取历史时间窗口内的所述被动访问请求的数量,基于所述商品提供方系统在单位时间内可承接的访问请求数量的上限值,以及各历史时间窗口内的所述被动访问请求的数量,确定所述当前时间窗口内的所述主动访问请求的最大准入量的操作每隔预设时长执行一次,其中,所述预设时长等于一个时间窗口对应的时长。
在一些实施例中,所述基于所述商品提供方系统在单位时间内可承接的访问请求数量的上限值,以及各历史时间窗口内的所述被动访问请求的数量,确定所述当前时间窗口内的所述主动访问请求的最大准入量,包括:
基于各历史时间窗口内的所述被动访问请求的数量确定当前时间窗口内的所述被动访问请求的预测量;基于所述上限值和所述当前时间窗口对应的时长,确定所述当前时间窗口内所述商品提供方系统可承接的访问请求数量的目标上限值;基于所述预测量和所述目标上限值确定所述最大准入量;或
获取各历史时间窗口内的所述主动访问请求的数量,并基于各历史时间窗口内的所述主动访问请求的数量和所述被动访问请求的数量确定各历史时间窗口内的访问请求总量,基于所述上限值和所述当前时间窗口对应的时长,确定所述当前时间窗口内所述商品提供方系统可承接的访问请求数量的目标上限值;确定各历史时间窗口内的访问请求总量与所述目标上限值的目标偏差,基于所述目标偏差确定所述最大准入量。
在一些实施例中,所述历史时间窗口为当前时间窗口之前的多个时间窗口;所述基于各历史时间窗口内的所述被动访问请求的数量确定当前时间窗口内的所述被动访问请求的预测量,包括:基于各历史时间窗口内的所述被动访问请求的数量确定所述被动访问请求的变化趋势;根据所述变化趋势确定当前时间窗口内的所述被动访问请求的预测量;和/或
所述确定各历史时间窗口内的访问请求总量和所述目标上限值的目标偏差 ,包括:基于所述目标上限值和预设比例得到缓冲值,其中,所述预设比例小于1;确定各个历史时间窗口的访问请求总量与所述缓冲值的偏差,作为所述目标偏差。
在一些实施例中,所述历史时间窗口为当前时间窗口之前的多个时间窗口,基于所述目标偏差确定所述最大准入量,包括:
基于所述目标偏差和PID算法确定所述主动访问请求的调整量;
利用所述调整量对所述当前时间窗口的上一个时间窗口内的所述主动访问请求数量进行调整,得到所述最大准入量。
在一些实施例中,所述第三方平台为分布式系统,所述分布式系统包括多个节点,每个节点可用于向所述商品提供方系统发送访问请求,所述方法由从所述多个节点中选取的任一目标节点执行,每个历史时间窗口内的所述被动访问请求的数量通过目标存储系统统计并存储,所述获取历史时间窗口内的所述被动访问请求的数量,包括:
从所述目标存储系统中获取历史时间窗口内的所述被动访问请求的数量,其中,所述目标存储系统具有计数功能。
在一些实施例中,每个历史时间窗口内的所述被动访问请求的数量基于以下方式确定:
每个节点在获取到用户发起的所述被动访问请求后,基于所述被动访问请求的发起时间确定所述被动访问请求对应的时间窗口的标识,并向所述目标存储系统发送携带该时间窗口的标识的命令,以使所述目标存储系统基于所述标识更新该时间窗口的所述被动访问请求的数量。
在一些实施例中,所述历史时间窗口内的所述被动访问请求的数量通过环形数组存储,所述环形数组包括多个桶,每个桶用于存储一个时间窗口内的待统计数据,每种类型的待统计数据通过所述目标存储系统中一个计数器计数得到,其中,所述待统计数据至少包括所述被动访问请求的数量。
在一些实施例中,所述待统计数据还包括以下一种或多种:每个历史时间窗口内成功响应的所述被动访问请求的数量、每个历史时间窗口内异常的所述被动访问请求的数量、以及所述被动访问请求的平均响应时长,其中,所述最大准入量基于所述待统计数据以及所述上限值确定。
在一些实施例中,所述第三方平台为分布式系统,所述分布式系统包括多个节点,每个节点可用于向所述商品提供方系统发送访问请求,所述方法由从所述多个节点中选取的任一目标节点执行,在确定所述当前时间窗口内的所述主动访问请求的最大准入量之后,所述方法还包括:
将所述最大准入量存储到目标存储系统中,并为所述最大准入量设置有效时长,其中,所述有效时长为一个时间窗口的时长,其中,所述目标存储系统具有计数功能。
在一些实施例中,在确定所述当前时间窗口内的所述主动访问请求的最大准入量之后,所述方法还包括:
基于当前所述分布式系统 的节点数量和所述最大准入量确定每个节点在当前时间窗口内的所述主动访问请求的目标准入量,以控制每个节点向所述商品提供方系统发起的所述主动访问请求不超过所述目标准入量,其中,每个节点对应的目标准入量一致;或
基于当前所述分 布式系统的节点数量、所述最大准入量、以及每个节点当前的处理性能确定每个节点在当前时间窗口内的所述主动访问请求的目标准入量,以控制每个节点向所述商品提供方系统发起的所述主动访问请求不超过所述目标准入量,其中,每个节点对应的目标准入量正相关于每个节点当前的处理性能。
根据本说明书实施例的第二方面,提供一种分布式系统的节点,所述节点包括处理器、存储器、存储于所述存储器且可供所述处理器执行的计算机程序,所述处理器执行所述计算机程序时,实现上述第一方面提及的所述方法。
根据本说明书实施例的第三方面,提供一种分布式系统,所述分布式系统包括多个节点,每个节点通过目标接口向商品提供方系统发送访问请求,其中,所述访问请求包括用户通过所述分布式系统向所述商品提供方系统发起的被动访问请求,以及所述分布式系统直接向所述商品提供方系统发起的主动访问请求,所述多个节点中任一节点可用于执行上述第一方面提及的方法。
根据本说明书实施例的第四方面,提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提及的方法。
本说明书实施例的有益效果:在对第三方平台向商品提供方系统发起的访问请求进行流量控制的场景,考虑到被动访问请求的数量和主动访问请求的数量受到商品提供方系统单位时间内所能承载的访问请求的最大数量的限制,因而可以基于当前时间窗口之前的一个或多个历史时间窗口内被动访问请求的数量,实时的调整当前时间窗口的主动访问请求的最大准入量,即主动访问请求的数量可以基于过去一段时间内被动访问请求的数量实时调整,从而可以在对商品提供方系统进行保护的前提下,既能保证优先级较高的被动访问请求被及时处理,同时,也可以最大化的利用商品提供方系统提供的接口资源,及时向商品提供方系统发送主动访问请求,以获取最新的商品信息。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
附图说明
此处的附图被并入说明书中并构成本说明书实施例的一部分,示出了符合本说明书实施例的实施例,并与说明书一起用于解释本说明书实施例的原理。
图1为本说明书一示例性实施例示出的第三方平台向商品提供方系统发送访问请求的示意图;
图2为本说明书一示例性实施例示出的流量控制方法的示意图;
图3为本说明书一示例性实施例示出的流量控制方法的流程图;
图4为本说明书一示例性实施例示出的确定当前时间窗口的主动访问请求最大准入量的示意图;
图5为本说明书一示例性实施例示出的分布式系统的示意图;
图6为本说明书一示例性实施例示出的分布式系统借助redis存储系统统计数据的示意图;
图7为本说明书一示例性实施例示出的利用环形数组数据结构存储被动访问请求的数量的示意图;
图8为本说明书一示例性实施例示出的分布式系统的节点的逻辑框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书实施例的一些方面相一致的装置和方法的例子。
在本说明书实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书实施例。在本说明书实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
目前,很多商品提供方均会在第三方平台展示自身提供的商品,以便用户可以通过第三方平台查看或购买自身提供的商品。通常,如图1所示,商品提供方的业务系统(以下称为商品提供方系统)会提供一个接口给第三方平台,以便第三方平台可以通过该接口访问商品提供方系统。一般而言,第三方平台向商品提供方系统发起的访问请求可以分类两类,一类是用户通过第三方平台向商品提供方系统发起的访问请求,比如,用户的下单请求、退款请求、校验请求等等,这类访问请求的发起时间、数量由用户决定,第三方平台是无法控制的,因而,可以将这些访问请求统称为被动访问请求。另一类是第三方平台主动向商品提供方系统发起的访问请求,比如,通常第三方平台可以缓存商品提供方的一些商品信息(比如,商品剩余数量、商品类型、商品价格等等),以便用户可以通过第三方平台查看这些商品信息。由于商品提供方提供的商品信息通常是实时变化的,因而第三方平台需要定期从商品提供方系统获取最新的商品信息,以便将最新的商品信息展示给用户。由于第三方平台为了从商品提供方系统获取商品信息所发起的访问请求可以由第三方平台自行设置访问的时间、频次、数量等,因此,可以将这类访问请求统称为主动访问请求。
比如,很多酒店供应商均会在第三方平台中展示自身可提供的房型、房间的图片、价格、空房剩余量以及可提供的各类服务等信息。用户可以通过第三方平台访问酒店的业务系统,以进行酒店预订、退款等各种操作,这类访问请求为被动访问请求。同时,第三方平台也可以定期从酒店业务系统中拉取酒店的最新信息,比如,最新的房间图片、价格、空房剩余量等,这类访问请求为主动访问请求。
由于商品提供方系统的处理资源有限,因而,提供给第三方平台的接口资源也有限。即商品提供方系统往往会限制第三方平台发送的访问请求的数量,即被动访问请求和主动访问请求的数量不能超出商品提供方系统所能承载的访问请求数量的上限值。目前,针对这种场景,通常会结合实际应用场景预先为两类访问请求的数量设置一个上限值,然后通过RateLimit(速率限流器)控制两类访问请求的数量不超过各自对应的上限值。
举个例子,如图2所示,假设商品提供方所能承载的最大QPS(Queries-per-second),每秒查询率,即每秒请求数)为100个,则可以基于不同时段的用户访问请求量的大小设置两类访问请求的上限值。比如,假设白天用户访问请求数量较多,因而,可以设置被动访问请求和主动访问请求各自对应的上限值为80个和20个,而晚上用户访问请求数量较少,可以设置被动访问请求和主动访问请求各自对应的上限值为50个和50个,然后可以控制预设的时间段内两类访问请求的数量均不超过设置的上限值,从而可以确保总的访问请求数量不超过商品提供方系统所能承载的最大数量。
在上述应用场景中,为了不影响用户体验,用户发起的被动访问请求优先级通常较高,需要及时响应。而第三方平台直接发起的主动访问请求是用于从商品提供方系统获取商品信息的,因而,也需要尽量最大化利用商品提供方系统所能提供的接口资源,以及时获取到最新的商品信息。
但是,目前的流量控制方案中,被动访问请求和主动访问请求是竞争关系,无法保证优先级较高的被动访问请求被及时处理,并且由于两类访问请求的数量为固定值,无法最大化的利用商品提供方系统提供的接口资源。比如,以被动访问请求和主动访问请求各自对应的上限值为80个和20个为例,可能存在某个时刻被动访问请求数量只有50个,此时主动访问请求的最大数量本可以达到50个,由于限制了主动访问请求数量不超过20个,从而白白浪费了商品提供方系统提供的接口资源。另外,上述方式需要用户去跟踪两类访问请求的数量变化趋势,以调整上述上限值,也比较繁琐。
基于此,本公开实施例提供了一种流量控制方法,该方法用于控制第三方平台向商品提供方系统发起的访问请求的数量。考虑到被动访问请求的数量和主动访问请求的数量受到商品提供方系统单位时间内所能承载的访问请求的最大数量的限制,因而可以基于当前时间窗口之前的一个或多个历史时间窗口内被动访问请求的数量,实时的调整当前时间窗口的主动访问请求的最大准入量,即主动访问请求的数量可以基于过去一段时间内被动访问请求的数量实时调整,从而可以在对商品提供方系统进行保护的前提下,既能保证优先级较高的被动访问请求被及时处理,同时,也可以最大化的利用商品提供方系统提供的接口资源,及时向商品提供方系统发送主动访问请求,以获取最新的商品信息。
本公开实施例中的商品提供方可以是各类可以提供商品的商家或供应商,该商品可以是指各种实体产品,也可以是指各类服务。第三方平台可以是各类提供第三方服务的平台,比如,第三方平台可以展示多个商家提供的商品信息,以便用户可以通过第三方平台查看或购买商品提供方提供的商品。
本公开实施例中的第三方平台可以是一个单独的设备,也可以是由多个设备组成的分布式系统。如果第三方平台为单独的设备,该方法可以由该设备执行。如果第三方平台为分布式系统,该方法可以由分布式系统中的某个节点执行。
在一些实施例中,为了实现实时地对主动访问请求的最大准入量进行调整,以最大化的利用商品提供方系统提供的接口资源,可以每隔预设时长执行一次该流量控制方法。该预设时长可以基于实际需求灵活设置,比如,可以是1s,也可以是5s。其中,在一定范围内,预设时长设置得越短,流量调控的精细化程度越高。如图3所示,所述流量控制方法可以包括以下几个步骤:
S302、获取历史时间窗口内的所述被动访问请求的数量,其中,所述历史时间窗口为当前时间窗口之前的一个或多个时间窗口;
为了方便统计不同时间段内被动访问请求的数量,可以以时间窗口为单位对被动访问请求的数量进行统计。其中,一个时间窗口对应的时长可以基于实际需求灵活设置,比如,一个时间窗口对应的时长可以是1s,也可以是5s。
其中,当前时间窗口可以是指接下来即将要进行流量控制的时间窗口,比如,假设一个时间窗口对应的时长为1s,为了实现在接下来的1s内对第三方平台向商品提供方系统发送的访问请求的流量进行控制,可以动态的调整接下来1s的主动访问请求的数量。
由于被动访问请求是用户发起的,不同时间窗口内的被动访问请求数量第三方平台并不能控制,因而,只能基于当前时间窗口之前的一个或多个时间窗口(即历史时间窗口)内的被动访问请求数量对当前时间窗口的被动访问请求的数量进行预测,进而决定主动访问请求的数量。所以,在步骤S302中,可以获取历史时间窗口内第三方平台向商品提供方系统发送的被动访问请求数量。其中,历史时间窗口可以是当前时间窗口之前的一个或多个时间窗口。比如,假设当前时间窗口为第N个时间窗口,历史时间窗口可以是第N-1个窗口,也可以是第N-1、N-2…N-3等多个时间窗口,具体可以基于实际需求设置。
S304、基于所述商品提供方系统在单位时间内可承接的访问请求数量的上限值,以及各历史时间窗口内的所述被动访问请求的数量,确定所述当前时间窗口内的所述主动访问请求的最大准入量,以控制所述第三方平台在所述当前时间窗口内发起的所述主动访问请求的数量不超过所述最大准入量。
为了避免商品提供方系统接收到的访问请求数量过大,导致商品提供方系统奔溃或故障,一般而言,可以预先为商品提供方系统在单位时间内可承接的访问请求数量设置一个上限值,即尽量保证单位时间内第三方平台向商品提供方系统发送的访问请求总数量不超过该上限值。同时,为了最大化的利用商品提供方系统提供的资源,单位时间内第三方平台向商品提供方系统发送的访问请求总数量可以尽量接近该上限值。
在步骤S304中,在获取到各历史时间窗口内的被动访问请求的数量后,可以基于商品提供方系统在单位时间内可承接的访问请求数量的上限值,以及各历史时间窗口内的被动访问请求的数量,确定当前时间窗口内的主动访问请求的最大准入量,然后控制第三方平台在当前时间窗口内发起的主动访问请求的数量不超过该最大准入量。
其中,确定当前时间窗口内主动访问请求的最大准入量的具体实现方式有多种,可以基于实际需求灵活设置,本公开实施例不做限制。
比如,在一些实施例中,在基于该上限值以及各历史时间窗口内的被动访问请求的数量确定当前时间窗口内主动访问请求的最大准入量时,可以先基于各历史时间窗口内的被动访问请求的数量对当前时间窗口内的被动访问请求数量进行预测,得到预测量,然后可以基于该上限值和当前时间窗口对应的时长,确定当前时间窗口内商品提供方系统可承接的访问请求数量的上限值(以下称为目标上限值)。举个例子,假设商品提供方系统在单位时间(比如,1s)可承接的访问请求数量的上限值为100个,当前时间窗口对应的时长为2s,则目标上限值为200个。
在确定当前时间窗口对应的目标上限值后,可以根据该目标上限值和该预测量确定该最大准入量。比如,假设目标上限值为100个,当前时间窗口的预测量为60个,则最大准入量可以是40个。当然,在一些场景,考虑到预测量未必准确,为了避免超出上限值,也可以加入一些冗余,比如,最大准入量可以是30个。
比如,在一些场景,考虑到短时间内被动访问请求数量不会过大,可以将当前时间窗口的上一个时间窗口的被动访问请求数量作为当前时间窗口内的被动访问请求的预测量,或者,也可以将当前时间窗口之前的多个历史时间窗口的被动访问请求数量取平均值,作为当前时间窗口内的被动访问请求的预测量。
在一些实施例中,如果历史时间窗口为当前时间窗口之前的多个时间窗口,考虑到用户发起的被动访问请求是实时变化的,为了可以更加准确的对当前时间窗口内的被动访问请求的数量进行预测,也可以基于各历史时间窗口内的被动访问请求的数量确定被动访问请求的变化趋势,根据该变化趋势确定当前时间窗口内的被动访问请求的预测量。比如,可以基于各历史时间窗口内的被动访问请求的数量确定被动访问请求的数量在不断增大还是不断减小,增大的幅度是多少,或者减小的幅度是多少,进而可以得到当前时间窗口内的被动访问请求的预测量。
在一些实施例中,在基于该上限值以及各历史时间窗口内的被动访问请求的数量确定当前时间窗口内主动访问请求的最大准入量时,也可以先获取各历史时间窗口内的主动访问请求的数量,并基于各历史时间窗口内的主动访问请求的数量和被动访问请求的数量确定各历史时间窗口内的访问请求总量。然后可以基于该上限值和当前时间窗口对应的时长,确定当前时间窗口内商品提供方系统可承接的访问请求数量的上限值(以下称为目标上限值)。然后可以基于访问请求总量和该目标上限值确定目标偏差,其中,该目标偏差用于表征各历史时间窗口的总访问请求数量和该目标上限值的差异。由于,通常希望总访问请求数量不超过目标上限值,且尽量与该目标上限值接近,因而可以基于各历史时间窗口对应的目标偏差确定该最大准入量。比如,可以基于上一个时间窗口的目标偏差确定该如何调整当前时间窗口的最大准入量。如果当前时间窗口的上一个时间窗口的访问请求总数量超过了该目标上限值,说明当前时间窗口内的主动访问请求最大准入量相比于上一个时间窗口主动访问请求的最大准入量需减小一些,反之,则需要增大一些,且减小和增大的幅度可以基于该目标偏差的大小动态调整。
如图4所示,假设商品提供方系统最大QPS为100个,一个时间窗口对应的时长为1s,假设从时间窗口1开始进行流量控制,可以统计时间窗口1的被动访问请求数量,假设为50个。当当前时间窗口为时间窗口2时,可以确定时间窗口2的主动访问请求最大准入量为50个,并统计时间窗口2的被动访问请求数量为60个。当当前时间窗口为时间窗口3时,发现时间窗口2的被动访问请求和主动访问请求总量为110个,此时超过了最大QPS,因而,可以将时间窗口3的被动访问请求量减小10个,即变为40个。接下来的每个时间窗口,均可以采用类似的方式确定最大准入量。
当然,为了进行更加准确的控制,也可以是基于当前时间窗口之前的多个历史时间窗口对应的目标偏差的整体变化趋势,综合确定当前时间窗口的最大准入量,由于多个历史时间窗口对应的目标偏差一定程度反映了被动访问请求的变化趋势,结合多个历史时间窗口对应的目标偏差确定的当前时间窗口的最大准入量更加准确。
在一些实施例中,该目标偏差可以是各历史时间窗口的总访问请求数量和该上限值的偏差,比如,上限值为100个,各历史时间窗口的总访问请求数量为90个,则该目标偏差为10个。
在一些实施例中,考虑到在基于目标偏差对上一个时间窗口的主动访问请求最大准入量进行调整,得到当前时间窗口内主动访问请求的最大准入量时,可能会存在当前时间窗口的访问请求数量突然急剧增大的场景,从而可能会导致当前时间窗口的访问请求总量超出目标上限值,对商品提供方系统造成冲击。为了避免上述问题,也可以设置一些缓冲量,即在确定目标偏差时,可以先利用目标上限值和预设的缓冲比例得到缓冲值,其中,该缓冲比例小于1,即缓冲值小于该目标上限值。然后针对每个历史时间窗口,可以确定该缓冲值和该历史时间窗口的访问请求总量的偏差,作为该历史时间窗口对应的目标偏差。
在一些实施例中,可以基于目标偏差确定主动访问请求的调整量,利用该调整量对对上一个时间窗口的主动访问请求最大准入量进行调整,得到当前时间窗口内主动访问请求的最大准入量。
在一些实施例中,为了对第三方平台向商品提供方系统发送的访问请求流量进行更精准的控制,在根据目标偏差确定主动访问请求的调整量时,可以基于该目标偏差和PID算法确定调整量。PID算法是指基于“比例(proportional)、积分(integral)、微分(derivative)”对目标参数进行控制的算法,该算法可以保证目标参数接近期望值,不会出现较大的波动。通过利用PID算法确定调整量,可以对当前时间窗口的访问请求总量进行更准确的控制,使其接近上限值,避免出现较大的波动。
在一些实施例中,为了实现对各个时间窗口的访问请求的数量均进行准确的控制,该预设时长可以等于一个时间窗口对应的时长,即针对每个时间窗口,都可以采用上述流量控制方法进行流量控制。
在一些实施例中,该第三方平台可以是一个单独的设备,比如,可以是一台服务器,这种情况下,在进行流量控制时,只需控制这一台设备向商品提供方系统发送的访问请求数量不超过商品提供方系统所能承载的访问请求数量上限值即可,在统计各时间窗口的被动访问请求数量时,也仅需利用单台设备上的计数器对被动访问请求数量进行统计。
在一些实施例中,该第三方平台也可以是一个分布式系统,该分布式系统包括多个节点,比如,每个节点可以是一台服务器。针对分布式系统的场景,有些流量控制方案是先将最大准入量平均分配给分布式系统中的多个节点,确定每个节点对应的最大准入量,再针对每个节点进行流量控制。然而,由于分布式系统中的节点数量通常实时变化,可能存在分配完后,系统中的某个节点故障,造成没有最大化利用商品提供方的接口资源。为了避免上述问题,在进行流量控制时,可以先确定整个分布式系统在当前时间窗口内的主动访问请求最大准入量,再分配给分布式系统中的各个节点。
针对分布式系统,如图5所示,容易想到的一种系统架构是可以在分布式系统中设置一个中心节点,该中心节点可以与其余的各个节点通信,由该中心节点负责各个节点的任务调度和数据统计,但是该种系统架构比较复杂,且当中心节点出现故障后,整个系统则无法运行。此外,由于分布式系统的各节点均可以向商品提供方系统发送访问请求,在统计各时间窗口的被动访问请求数量时,需统计多个节点发送的被动访问请求的总数量。如果采用上述系统架构,中心节点需统计各时间窗口内的各个节点被动访问请求的总数量,这又需要对各节点进行时间同步,较为复杂。
基于此,本公开实施例的分布式系统可以无需配置中心节点,即系统中的各个节点是平等的,每次可以通过选举的方式从多个节点中任意选取一个节点(即目标节点)来实现上述流量控制方法。其中,如图6所示,为了让整个分布式系统更加简单和高效,分布式系统中的各节点之间可以无需通信,而是借助具有计数功能的目标存储系统来实现数据的统计和存储,以便实现上述流量控制方法。比如,该目标存储系统可以是redis存储系统,或者也可以是其他具有类似功能的系统。
比如,在一些实施例中,在统计分布式系统在各时间窗口内的被动访问请求总数量时,如果各个节点的被动访问请求数量需发送到一个节点进行汇总,那么节点之间必须通信互联,会增加系统的复杂程度,同时,也存在上述时间同步的问题,比较繁琐。为了避免上述问题,在一些实施例中,如果第三方平台为分布式系统,可以借助目标存储系统统计和存储每个历史时间窗口内的被动访问请求的数量。该方法可以由从分布式系统的多个节点中选取的任一目标节点执行,该目标节点可以从目标存储系统中获取各个历史时间窗口内的被动访问请求的数量。
在一些实施例中,每个节点在获取到用户发起的被动访问请求后,可以基于被动访问请求的发起时间确定被动访问请求对应的时间窗口的标识,并向该目标存储系统发送携带该时间窗口的标识的命令,以使该目标存储系统基于该标识更新该时间窗口的被动访问请求的数量。
以目标存储系统为redis存储系统为例,考虑到redis存储系统本身具备计数功能,因而可以借助redis存储系统的计数功能实现每个历史时间窗口内的被动访问请求数量的统计和存储。比如,如图6所示,在一些实施例中,每个节点在获取到用户发起的被动访问请求后,可以基于该被动访问请求的发起时间确定该被动访问请求对应的时间窗口的标识,并向redis存储系统发送携带该时间窗口的标识的命令,以便redis存储系统可以基于该标识更新该时间窗口的被动访问请求的数量。比如,redis存储系统可以通过key-value键值对存储不同时间窗口的被动访问请求数量,其中,key可以表示时间窗口的标识,value表示被动访问请求数量。redis存储系统在接收到携带时间窗口标识的命令后,可以将该时间窗口标识映射成key,然后利用计数器对该key对应的value计数(即加1)。
在一些实施例中,为了方便对各个历史时间窗口内的被动访问请求的数量进行统计,可以利用一个环形数组存储分布式系统的被动访问请求数量,其中,环形数组中包括多个桶,每个桶对应一个用于存储数据的存储区域,每个桶可以用于存储一个时间窗口内的待统计数据,其中,每个桶存储的待统计数据的类型可以预先定义好,每种类型的待统计数据可以通过目标存储系统中的一个计数器进行计数。比如,在一些场景,每个桶中要待统计数据可以仅仅是一个时间窗口内发起的被动访问请求的数量。
在一些实施例中,考虑到被动访问请求是否被成功响应,以及被动访问请求的响应时长在一定程度上也反映了商品提供方系统的性能,因而可以结合这些信息进行流量控制。所以,待统计数据还可以包括以下一种或多种:每个历史时间窗口内成功响应的被动访问请求的数量、异常的被动访问请求数量、被动访问请求的平均响应时长。其中,待统计数据类型可以基于实际需求设置,并不局限上述例举的。在这种情况下,当前时间窗口的最大准入量除了可以基于各历史时间窗口的被动访问请求的数量和上限值确定,还可以结合各历史时间窗口成功响应的被动访问请求的数量、异常的被动访问请求数量、被动访问请求的平均响应时长中的一种或多种确定。
此外,考虑到与当前时间窗口间隔时长较久的历史时间窗口的数据对当前时间窗口的参考意义不大,因此,可以利用环形数组进行数据的存储,从而可以用最新的数据覆盖最先存储的数据,节省存储资源。比如,该环形数组的长度可以是60,即环形数组中可以包括60个桶,每个桶对应的时间窗口的时长为1s。即环形数组可以记录60s内的被动访问请求数量。在第61s后,可以用61s的数据覆盖第1s的数据。
在一些实施例中,该第三方平台为分布式系统,该分布式系统包括多个节点,每个节点可用于向商品提供方系统发送访问请求,该方法可以由从多个节点中选取的任一目标节点执行,在确定当前时间窗口内的主动访问请求的最大准入量之后,可以将该最大准入量存储到具有计数功能的目标存储系统(比如,redis存储系统)中,并为该最大准入量设置有效时长。考虑到分布式系统的场景,各个节点之间可以不通信,因而,执行该方法的目标节点在确定最大准入量后,可以将当前时间窗口的最大准入量存储在目标存储系统,以便其余的节点可以从目标存储系统获取到该最大准入量。同时由于最大准入量是实时调整的,因而,可以为最大准入量设置一个有效时长,当超过该有效时长后,当前的最大准入量即过期,因而,可以给该最大准入量设置一个过期的标识,从而,每个节点均可以获取到最新的最大准入量。
在一些场景,针对每个当前时间窗口,均可以确定一次当前时间窗口的最大准入量,因而,该有效时长可以等于一个时长窗口的时长,即该最大准入量只在当前时长窗口内有效,到下一个时间窗口后,则可以使用下一个时间窗口对应的最大准入量对主动访问请求的数量进行控制。
举个例子,假设第三方平台为分布式系统,分布式系统包括多个节点,为了对该分布式系统向商品提供方系统发送的访问请求数量进行控制,可以按照以下流程实现:
(1)每个时间窗口内分布式系统的被动访问请求的信息的统计。
其中,被动访问请求的信息可以包括以下一种或多种:被动访问请求的数量、成功响应的被动访问请求的数量、异常的被动访问请求的数量、被动访问请求的平均响应时长。
用来记录这些信息的数据结构可以是如图7所示的环形数组。 举例来说,如果环形数组的长度是60,每1秒中的被动访问请求的信息记录在一个桶(MetricBucket)中,那这个环形数组就可以记录最近1分钟内的被动访问请求的信息。
环形数组中每个MetricBucket会有个StartOffset,这个值代表当前这个桶记录的是哪个时间窗口的数据,StartOffset可以理解为时间窗口的开始时间,而长度固定为1秒,因此也可以用它来标记一个时间窗口。 如果记录的信息超过60秒后,第61秒的数据会覆盖掉第1秒的桶,因此,这个环形数组永远都只有60个桶,记录最近60秒的数据。
当每个节点获取到用户发起的被动访问请求后,可以根据当前系统时间戳取模,计算到当前应该要在哪个 MetricBucket进行计数。
比如,1689080421313这个时间戳,单位是毫秒,代表的时间是2023-07-11 21:00:21。先把 1689080421313/1000,换算成秒,再对60取模,结果为21,也就是代表要记录到第21个桶。
当前时间窗口内新发起一次调用时,被动访问请求的数量加1;当前时间窗口内获取到一次成功返回时,成功响应的被动访问请求的数量加 1;当前时间窗口内获取到一次失败返回,异常的被动访问请求的数量加1。 每种类型的数据都可以用Redis提供的原子计数器(Redisson中提供的RAtomicLong)进行累加计数操作。
分布式系统中的每个节点的被动访问请求信息都可以采用上述方式统计,节点之间不会互相通信,Redis存储系统可以保证分布式系统中的各节点的每次累加都是互不影响、不重不漏,从而可以得到整个分布式系统的被动访问请求的信息。
(2)基于统计的各时间窗口的被动访问请求的信息确定当前时间窗口的主动访问请求最大准入量。
可以从分布式系统的多个节点中选取出一个节点来实现流量控制。该节点可以获取上一时间窗口的被动访问请求的信息、上一时间窗口的最大准入量、商品提供方系统单位时间内所能承载的访问请求的最大数量作为PID算法的输入,即可以输出当前时间窗口的主动访问请求的调整量。如果调整量是正值,则增大上一时间窗口的最大准入量,得到当前时间窗口的最大准入量,反之,则减小,从而实现对最大准入量的实时动态调整。其中,最大准入量可以存储在redis存储系统中,以便各节点可以从redis存储系统获取,并且可以为最大准入量设置一个有效时长,有效时长为一个时间窗口的时长,在超过该有效时长后,最大准入量即失效。
在一些实施例中,在确定所述当前时间窗口内的主动访问请求的最大准入量之后,可以基于当前分布式系统当前的节点数量和该最大准入量确定每个节点在当前时间窗口内发起主动请求的最大准入量,以下称为目标准入量,然后可以控制每个节点向商品提供方系统发起的主动访问请求不超过该目标准入量,其中,每个节点的目标准入量一致。
举个例子,如果确定的分布式系统在当前时间窗口的最大准入量为80,此时,分布式系统处于运行状态的节点一共4个,因而,每个节点的目标准入量为20,即每个节点在当前时间窗口内的发起的主动访问请求数量不超过20。
当然,在一些场景,考虑到每个节点当前的处理性能也存在差异,也可以结合分布式系统中的节点的数量、该最大准入量、每个节点当前的处理性能确定每个节点的目标准入量。其中,处理性能越好的节点对应的目标准入量越大,从而可以充分利用各节点的处理性能。
与本说明书实施例提供的流量控制方法实施例相对应,本说明还提供了流量控制装置,所述装置用于控制第三方平台向商品提供方系统发起的访问请求的数量,其中,所述访问请求包括用户通过所述第三方平台向所述商品提供方系统发起的被动访问请求,以及所述第三方平台直接向所述商品提供方系统发起的主动访问请求,所述装置包括:
获取模块,用于获取历史时间窗口内的所述被动访问请求的数量,其中,所述历史时间窗口为当前时间窗口之前的一个或多个时间窗口;
控制模块,用于基于所述商品提供方系统在单位时间内可承接的访问请求数量的上限值,以及各历史时间窗口内的所述被动访问请求的数量,确定所述当前时间窗口内的所述主动访问请求的最大准入量,以控制所述第三方平台在所述当前时间窗口内发起的所述主动访问请求的数量不超过所述最大准入量。
上述装置中各个单元的功能和作用的实现过程具体详见上述内存分配方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
此外,本公开实施例提供了一种分布式系统的节点,如图8所示,所述节点包括处理器82、存储器84、存储于所述存储器84且可供所述处理器82执行的计算机程序,所述处理器82执行所述计算机程序时实现上述实施例中提及的流量控制方法。
其中,该节点执行上述流量控制方法的具体细节可参考上述实施例的描述,在此不再赘述。
进一步地,本公开实施例提供了一种分布式系统,该分布式系统包括多个节点,每个节点通过目标接口向商品提供方系统发送访问请求,其中,所述访问请求包括用户通过所述分布式系统向所述商品提供方系统发起的被动访问请求,以及所述分布式系统直接向所述商品提供方系统发起的主动访问请求,所述多个节点中任一节点可用于执行上述实施例中提及的流量控制方法。
其中,该节点执行上述流量控制方法的具体细节可参考上述实施例的描述,在此不再赘述。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
由于本说明书实施例对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备执行本说明书实施例各个实施例方法的全部或部分步骤。而前述的存储介质包括: U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、 随机存取存储器(Random Access Memory, RAM)、 磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本说明书实施例的较佳实施例而已,并不用以限制本说明书实施例,凡在本说明书实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书实施例保护的范围之内。
Claims (13)
1.一种流量控制方法,其特征在于,所述方法用于控制第三方平台向商品提供方系统发起的访问请求的数量,其中,所述访问请求包括用户通过所述第三方平台向所述商品提供方系统发起的被动访问请求,以及所述第三方平台直接向所述商品提供方系统发起的主动访问请求,所述方法包括:
获取历史时间窗口内的所述被动访问请求的数量,其中,所述历史时间窗口为当前时间窗口之前的一个或多个时间窗口;
基于所述商品提供方系统在单位时间内可承接的访问请求数量的上限值,以及各历史时间窗口内的所述被动访问请求的数量,确定所述当前时间窗口内的所述主动访问请求的最大准入量,以控制所述第三方平台在所述当前时间窗口内发起的所述主动访问请求的数量不超过所述最大准入量;
其中,所述第三方平台为分布式系统,所述分布式系统包括多个节点,每个节点可用于向所述商品提供方系统发送访问请求,所述方法由从所述多个节点中选取的任一目标节点执行,每个历史时间窗口内的所述被动访问请求的数量通过目标存储系统统计并存储,所述获取历史时间窗口内的所述被动访问请求的数量,包括:
从所述目标存储系统中获取历史时间窗口内的所述被动访问请求的数量,其中,所述目标存储系统具有计数功能。
2.根据权利要求1所述的方法,其特征在于,所述获取历史时间窗口内的所述被动访问请求的数量,基于所述商品提供方系统在单位时间内可承接的访问请求数量的上限值,以及各历史时间窗口内的所述被动访问请求的数量,确定所述当前时间窗口内的所述主动访问请求的最大准入量的操作每隔预设时长执行一次,其中,所述预设时长等于一个时间窗口对应的时长。
3.根据权利要求1所述的方法,其特征在于,所述基于所述商品提供方系统在单位时间内可承接的访问请求数量的上限值,以及各历史时间窗口内的所述被动访问请求的数量,确定所述当前时间窗口内的所述主动访问请求的最大准入量,包括:
基于各历史时间窗口内的所述被动访问请求的数量确定当前时间窗口内的所述被动访问请求的预测量;基于所述上限值和所述当前时间窗口对应的时长,确定所述当前时间窗口内所述商品提供方系统可承接的访问请求数量的目标上限值;基于所述预测量和所述目标上限值确定所述最大准入量;或
获取各历史时间窗口内的所述主动访问请求的数量,并基于各历史时间窗口内的所述主动访问请求的数量和所述被动访问请求的数量确定各历史时间窗口内的访问请求总量;基于所述上限值和所述当前时间窗口对应的时长,确定所述当前时间窗口内所述商品提供方系统可承接的访问请求数量的目标上限值;确定各历史时间窗口内的访问请求总量与所述目标上限值的目标偏差,基于所述目标偏差确定所述最大准入量。
4.根据权利要求3所述的方法,其特征在于,所述历史时间窗口为当前时间窗口之前的多个时间窗口;所述基于各历史时间窗口内的所述被动访问请求的数量确定当前时间窗口内的所述被动访问请求的预测量,包括:基于各历史时间窗口内的所述被动访问请求的数量确定所述被动访问请求的变化趋势;根据所述变化趋势确定当前时间窗口内的所述被动访问请求的预测量;和/或
所述确定各历史时间窗口内的访问请求总量和所述目标上限值的目标偏差,包括:基于所述目标上限值和预设比例得到缓冲值,其中,所述预设比例小于1;确定各个历史时间窗口的访问请求总量与所述缓冲值的偏差,作为所述目标偏差。
5.根据权利要求3或4所述的方法,其特征在于,所述历史时间窗口为当前时间窗口之前的多个时间窗口,基于所述目标偏差确定所述最大准入量,包括:
基于所述目标偏差和PID算法确定所述主动访问请求的调整量;
利用所述调整量对所述当前时间窗口的上一个时间窗口内的所述主动访问请求数量进行调整,得到所述最大准入量。
6.根据权利要求1所述的方法,其特征在于,每个历史时间窗口内的所述被动访问请求的数量基于以下方式确定:
每个节点在获取到用户发起的所述被动访问请求后,基于所述被动访问请求的发起时间确定所述被动访问请求对应的时间窗口的标识,并向所述目标存储系统发送携带该时间窗口的标识的命令,以使所述目标存储系统基于所述标识更新该时间窗口的所述被动访问请求的数量。
7.根据权利要求1或6所述的方法,其特征在于,所述历史时间窗口内的所述被动访问请求的数量通过环形数组存储,所述环形数组包括多个桶,每个桶用于存储一个时间窗口内的待统计数据,每种类型的待统计数据通过所述目标存储系统中一个计数器计数得到,其中,所述待统计数据至少包括所述被动访问请求的数量。
8.根据权利要求7所述的方法,其特征在于,所述待统计数据还包括以下一种或多种:每个历史时间窗口内成功响应的所述被动访问请求的数量、每个历史时间窗口内异常的所述被动访问请求的数量、以及所述被动访问请求的平均响应时长,其中,所述最大准入量基于所述待统计数据以及所述上限值确定。
9.根据权利要求1所述的方法,其特征在于,所述第三方平台为分布式系统,所述分布式系统包括多个节点,每个节点可用于向所述商品提供方系统发送访问请求,所述方法由从所述多个节点中选取的任一目标节点执行,在确定所述当前时间窗口内的所述主动访问请求的最大准入量之后,所述方法还包括:
将所述最大准入量存储到目标存储系统中,并为所述最大准入量设置有效时长,其中,所述有效时长为一个时间窗口的时长,其中,所述目标存储系统具有计数功能。
10.根据权利要求9所述的方法,其特征在于,在确定所述当前时间窗口内的所述主动访问请求的最大准入量之后,所述方法还包括:
基于当前所述分布式系统的节点数量和所述最大准入量确定每个节点在当前时间窗口内的所述主动访问请求的目标准入量,以控制每个节点向所述商品提供方系统发起的所述主动访问请求不超过所述目标准入量,其中,每个节点对应的目标准入量一致;或
基于当前所述分布式系统的节点数量、所述最大准入量、以及每个节点当前的处理性能确定每个节点在当前时间窗口内的所述主动访问请求的目标准入量,以控制每个节点向所述商品提供方系统发起的所述主动访问请求不超过所述目标准入量,其中,每个节点对应的目标准入量正相关于每个节点当前的处理性能。
11.一种分布式系统的节点,其特征在于,所述节点包括处理器、存储器、存储于所述存储器且可供所述处理器执行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-10任一项所述的方法。
12.一种分布式系统,其特征在于,所述分布式系统包括多个节点,每个节点通过目标接口向商品提供方系统发送访问请求,其中,所述访问请求包括用户通过所述分布式系统向所述商品提供方系统发起的被动访问请求,以及所述分布式系统直接向所述商品提供方系统发起的主动访问请求,所述多个节点中任一节点可用于执行权利要求1-10任一项所述的方法。
13.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311043113.5A CN116800689B (zh) | 2023-08-17 | 2023-08-17 | 一种流量控制方法、节点、分布式系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311043113.5A CN116800689B (zh) | 2023-08-17 | 2023-08-17 | 一种流量控制方法、节点、分布式系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116800689A CN116800689A (zh) | 2023-09-22 |
CN116800689B true CN116800689B (zh) | 2024-01-09 |
Family
ID=88048301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311043113.5A Active CN116800689B (zh) | 2023-08-17 | 2023-08-17 | 一种流量控制方法、节点、分布式系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116800689B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015188580A1 (zh) * | 2014-06-11 | 2015-12-17 | 中兴通讯股份有限公司 | 一种流量控制方法及装置 |
CN108897886A (zh) * | 2018-07-09 | 2018-11-27 | 掌阅科技股份有限公司 | 页面展示方法、计算设备及计算机存储介质 |
WO2019149166A1 (zh) * | 2018-01-30 | 2019-08-08 | 阿里巴巴集团控股有限公司 | 网络访问方法、客户端、网络交互方法及调度、网络系统 |
CN110830463A (zh) * | 2019-10-30 | 2020-02-21 | 腾讯科技(深圳)有限公司 | 第三方授权登录方法和装置 |
CN111314381A (zh) * | 2020-03-20 | 2020-06-19 | 重庆富民银行股份有限公司 | 安全隔离网关 |
CN111431813A (zh) * | 2020-06-09 | 2020-07-17 | 北京信安世纪科技股份有限公司 | 访问限流方法、设备及存储介质 |
CN111654476A (zh) * | 2020-05-20 | 2020-09-11 | 中国工商银行股份有限公司 | 一种用户授权访问处理方法及装置 |
CN114003647A (zh) * | 2021-12-31 | 2022-02-01 | 北京泰迪熊移动科技有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
CN115190078A (zh) * | 2022-06-28 | 2022-10-14 | 上海砾阳软件有限公司 | 一种访问流量控制方法、装置、设备以及存储介质 |
WO2023005838A1 (zh) * | 2021-07-29 | 2023-02-02 | 维沃移动通信有限公司 | 数据共享方法和电子设备 |
WO2023036188A1 (zh) * | 2021-09-09 | 2023-03-16 | 海尔数字科技(青岛)有限公司 | 访问限流方法、装置、设备、存储介质及计算机程序产品 |
CN116055399A (zh) * | 2022-10-26 | 2023-05-02 | 唯品会(广州)软件有限公司 | 访问流量分发方法、系统、计算机设备及存储介质 |
CN116319576A (zh) * | 2023-03-08 | 2023-06-23 | 中国建设银行股份有限公司 | 一种访问流量控制方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10235534B2 (en) * | 2016-06-10 | 2019-03-19 | OneTrust, LLC | Data processing systems for prioritizing data subject access requests for fulfillment and related methods |
-
2023
- 2023-08-17 CN CN202311043113.5A patent/CN116800689B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015188580A1 (zh) * | 2014-06-11 | 2015-12-17 | 中兴通讯股份有限公司 | 一种流量控制方法及装置 |
WO2019149166A1 (zh) * | 2018-01-30 | 2019-08-08 | 阿里巴巴集团控股有限公司 | 网络访问方法、客户端、网络交互方法及调度、网络系统 |
CN108897886A (zh) * | 2018-07-09 | 2018-11-27 | 掌阅科技股份有限公司 | 页面展示方法、计算设备及计算机存储介质 |
CN110830463A (zh) * | 2019-10-30 | 2020-02-21 | 腾讯科技(深圳)有限公司 | 第三方授权登录方法和装置 |
CN111314381A (zh) * | 2020-03-20 | 2020-06-19 | 重庆富民银行股份有限公司 | 安全隔离网关 |
CN111654476A (zh) * | 2020-05-20 | 2020-09-11 | 中国工商银行股份有限公司 | 一种用户授权访问处理方法及装置 |
CN111431813A (zh) * | 2020-06-09 | 2020-07-17 | 北京信安世纪科技股份有限公司 | 访问限流方法、设备及存储介质 |
WO2023005838A1 (zh) * | 2021-07-29 | 2023-02-02 | 维沃移动通信有限公司 | 数据共享方法和电子设备 |
WO2023036188A1 (zh) * | 2021-09-09 | 2023-03-16 | 海尔数字科技(青岛)有限公司 | 访问限流方法、装置、设备、存储介质及计算机程序产品 |
CN114003647A (zh) * | 2021-12-31 | 2022-02-01 | 北京泰迪熊移动科技有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
CN115190078A (zh) * | 2022-06-28 | 2022-10-14 | 上海砾阳软件有限公司 | 一种访问流量控制方法、装置、设备以及存储介质 |
CN116055399A (zh) * | 2022-10-26 | 2023-05-02 | 唯品会(广州)软件有限公司 | 访问流量分发方法、系统、计算机设备及存储介质 |
CN116319576A (zh) * | 2023-03-08 | 2023-06-23 | 中国建设银行股份有限公司 | 一种访问流量控制方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
重大电商节日期间的网络性能与用户体验分析研究;李原;李想;张爱丽;;电子元器件与信息技术(04);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116800689A (zh) | 2023-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10897406B2 (en) | Scheduling method for content delivery network, and device | |
US7548969B2 (en) | Computer system polling with adjustable intervals based on rules and server states | |
US10447789B2 (en) | Distributed flow control | |
US11277273B2 (en) | Computer network service providing system including self adjusting volume enforcement functionality | |
CN108965381A (zh) | 基于Nginx的负载均衡实现方法、装置、计算机设备和介质 | |
US9473413B1 (en) | Dynamic throttle of network traffic | |
CN104243405B (zh) | 一种请求处理方法、装置及系统 | |
CN103841134B (zh) | 基于api发送、接收信息的方法、装置及系统 | |
CN109313572A (zh) | 通用自动缩放 | |
US20150081917A1 (en) | Managing multi-level service level agreements in cloud-based networks | |
CN107707488A (zh) | 支付联机交易流量控制方法、限流服务端及客户端 | |
US9419814B2 (en) | Event / calendar based auto-start of virtual disks for desktop virtualization | |
CN104601624B (zh) | 一种数据交互方法和装置 | |
CN107241380A (zh) | 用于基于时间调整的负载均衡的方法和设备 | |
CN103713852B (zh) | 一种信息处理方法、服务平台及电子设备 | |
CN110278229A (zh) | 分布式服务集群的负载均衡方法、装置以及电子设备 | |
CN113283803B (zh) | 一种物资需求计划的制定方法、相关装置及存储介质 | |
US20220270055A1 (en) | Verifying meeting attendance via a meeting expense and verification controller | |
CN116800689B (zh) | 一种流量控制方法、节点、分布式系统及存储介质 | |
CN110413918A (zh) | 数据发送方法、装置、设备及存储介质 | |
CN113852723B (zh) | 号码调度方法、设备及存储介质 | |
CN111325450B (zh) | 客服自动借调的处理方法、系统、电子设备及存储介质 | |
CN114936089A (zh) | 资源调度方法、系统、设备及存储介质 | |
CN113052691A (zh) | 一种分布式对账系统业务均衡方法,节点及集群 | |
CN110659849B (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 |