CN115134301B - 流量控制方法、装置、计算机设备和存储介质 - Google Patents
流量控制方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115134301B CN115134301B CN202210749726.XA CN202210749726A CN115134301B CN 115134301 B CN115134301 B CN 115134301B CN 202210749726 A CN202210749726 A CN 202210749726A CN 115134301 B CN115134301 B CN 115134301B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- limit value
- flow
- flow limit
- 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 47
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 230000003993 interaction Effects 0.000 claims abstract description 82
- 230000002452 interceptive effect Effects 0.000 claims abstract description 21
- 238000004590 computer program Methods 0.000 claims description 37
- 238000012545 processing Methods 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 14
- 238000004519 manufacturing process Methods 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 11
- 230000000670 limiting effect Effects 0.000 description 11
- 238000012417 linear regression Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 229910052799 carbon Inorganic materials 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012423 maintenance 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
- 238000005457 optimization Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000007711 solidification Methods 0.000 description 1
- 230000008023 solidification Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种流量控制方法、装置、计算机设备和存储介质。所述方法包括:获取N个节点的流量交互数据;根据流量交互数据,从N个节点中确定至少一个中心节点;根据中心节点的流量限值,确定N个节点中第一节点的流量限值;第一节点是N个节点中与中心节点存在交互的节点。该方案中,通过根据N个节点之间的流量交互数据来从中找出中心节点,然后根据中心节点的流量限值来确定各个节点的流量限值。充分考虑了流量交互的特性,区分中心节点和非中心节点,从而更加精确地为分布式节点分配流量,更适用于分式场景。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种流量控制方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
传统的限流算法,如时钟算法、漏斗算法和令牌桶算法等,基于单机提供服务的背景实现,且只能局限于固定的限流指标,因此在应对目前广泛使用的分布式、多节点的复杂系统时的能力不足。由于分布式系统存在各节点之间交互频繁、运行环境动态化、复杂化的特点,单纯的单机限流算法已不能适应越来越高的生产运维要求。
因此,如何得到更适用于分布式复杂环境的限流技术及方法是亟待解决的技术问题。
发明内容
基于此,有必要针对上述技术问题,提供一种更适用于分布式场景的流量控制方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种流量控制方法。所述方法包括:获取N个节点的流量交互数据;根据流量交互数据,从N个节点中确定至少一个中心节点;根据中心节点的流量限值,确定N个节点中第一节点的流量限值;第一节点是N个节点中与中心节点存在交互的节点。
在其中一个实施例中,根据流量交互数据,从N个节点中确定至少一个中心节点,包括:
根据N个节点的流量交互数据,确定N个节点中每个节点的负荷参数;
将N个节点中,负荷参数在预设范围内的节点确定为中心节点。
在其中一个实施例中,每个中心节点对应至少一个第一节点;根据中心节点的流量限值,确定N个节点中第一节点的流量限值,包括:
根据N个节点中第一节点的设备参数,确定第一节点的预测流量限值;
根据每个第一节点的预测流量限值与中心节点的流量限值,确定每个第一节点的流量限值。
在其中一个实施例中,根据N个节点中第一节点的设备参数,确定第一节点的预测流量限值,包括:
根据N个节点中第一节点的设备参数,确定第一节点的流量限值等级;
根据流量限值等级,确定第一节点的预测流量限值。
在其中一个实施例中,根据每个第一节点的预测流量限值与中心节点的流量限值,确定每个第一节点的流量限值,包括:
根据每个第一节点的预测流量限值,确定中心节点的预测流量限值;中心节点的预测流量限值是第一节点的预测流量限值的总和;
根据中心节点的预测流量限值和中心节点的流量限值的关系,确定每个第一节点的流量限值。
在其中一个实施例中,根据中心节点的预测流量限值和中心节点的流量限值的关系,确定每个第一节点的流量限值,包括:
当中心节点的预测流量限值小于或等于中心节点的流量限值时,将每个第一节点的预测流量限值确定为每个第一节点的流量限值;或者
当中心节点的预测流量限值大于中心节点的流量限值时,根据每个第一节点的预测流量限值在中心节点的预测流量限值的权重和中心节点的流量限值,确定每个第一节点的流量限值。
第二方面,本申请还提供了一种流量控制装置,所述装置包括:
获取模块,用于获取N个节点的流量交互数据;
处理模块,用于根据流量交互数据,从N个节点中确定至少一个中心节点;根据中心节点的流量限值,确定N个节点中第一节点的流量限值;第一节点是N个节点中与中心节点存在交互的节点。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面及其任意一种实现方式的方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面及其任意一种实现方式的方法的步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面及其任意一种实现方式的方法的步骤。
上述流量控制方法、装置、计算机设备、存储介质和计算机程序产品,通过根据N个节点之间的流量交互数据来从中找出中心节点,然后根据中心节点的流量限值来确定各个节点的流量限值。充分考虑了流量交互的特性,区分中心节点和非中心节点,从而更加精确地为分布式节点分配流量,更适用于分式场景。
附图说明
图1是本申请实施例的分布式节点的流量交互示意图;
图2是本申请实施例的一种流量控制方法的示意性流程图;
图3是步骤202的一种实现方式的示意性流程图;
图4是本申请实施例的中心节点的模型示意图;
图5是步骤203的一种实现方式的示意性流程图;
图6是步骤501的一种实现方式的示意性流程图;
图7是步骤502的一种实现方式的示意性流程图;
图8是步骤702的一种实现方式的示意性流程图;
图9是本申请实施例的另一种流量控制方法的示意性流程图;
图10是本申请实施例的一种流量控制装置的示意性结构图;
图11是本申请实施例的一种计算机设备的内部结构图。
具体实施方式
下面结合附图及实施例,对本申请进行说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的流量控制方法,可以应用于各类分布式流量交互的场景中。本申请实施例提供的流量控制方法可以部署在各类可以作为分布式节点的网络设备中。网络设备例如可以是服务器、基站或云端设备等。
图1是本申请实施例的分布式节点的流量交互示意图。如图1所示多个分布式子节点{P(11),P(12),P(13),P(21),P(22),P(23),P(31),P(32),P(33)},以及节点{Z(1),Z(2),Z(3)},其中各节点之间的服务调用关系复杂,衍生出节点之间错综复杂的流量交互关系。本示意图将节点部署和流量交互数据统一起来,为进一步建立分布式压力模型进行准备。图1中,各节点之间的连接点(a,b)即为流量交互数据,其中,调用次数为a,被调用次数为b。从左到右、从上到下为正向调用关系,反之为被调用关系。如图所示,每两个线条之间的连接线的数据(a,b)都是沿线条方向从左到右,靠近a的节点调用靠近b的节点的次数为a,也就是线条左端的节点调用线条右端的节点的次数为a,或者说线条右端的节点被线条左端的节点调用的次数为a;靠近b的节点调用靠近a的节点的次数为b,也就是线条右端的节点调用线条左端的节点的次数为b,或者说线条左端的节点被线条右端的节点调用的次数为b。
节点Z(1)与P(11)之间的流量交互数据为(70,0),也就是说,Z(1)调用P(11)70次,P(11)调用Z(1)0次。
节点P(11)与P(12)之间的流量交互数据为(200,100),也就是说,P(11)调用P(12)200次,P(12)调用P(11)100次。节点P(11)与Z(2)之间的流量交互数据为(50,0),P(11)与Z(2)之间在图中位置关系是Z(2)在左,P(11)在右,也就是说,P(11)调用Z(2)0次,Z(2)调用P(11)50次。节点P(11)与P(21)之间的流量交互数据为(40,50),也就是说,P(11)调用P(21)40次,P(21)调用P(11)50次。
节点P(12)与P(13)之间的流量交互数据为(500,0),也就是说,P(12)调用P(13)500次,P(13)调用P(12)0次。节点P(12)与P(21)之间的流量交互数据为(300,0),P(12)与P(21)之间在图中位置关系是P(21)在左,P(12)在右,也就是说,P(12)调用P(21)0次,P(21)调用P(12)300次。节点P(12)与P(31)之间的流量交互数据为(400,0),P(12)与P(31)之间在图中位置关系是P(31)在左,P(12)在右,也就是说,P(12)调用P(31)0次,P(31)调用P(12)400次。节点P(12)与P(22)之间的流量交互数据为(100,0),也就是说,P(12)调用P(22)100次,P(22)调用P(12)0次。
节点P(13)与P(22)之间的流量交互数据为(400,0),P(13)与P(22)之间在图中位置关系是P(22)在左,P(13)在右,也就是说,P(22)调用P(13)400次,P(13)调用P(22)0次。节点P(13)与P(32)之间的流量交互数据为(500,0),P(13)与P(32)之间在图中位置关系是P(32)在左,P(13)在右,也就是说,P(32)调用P(13)500次,P(13)调用P(32)0次。
节点Z(2)与P(21)之间的流量交互数据为(100,0),也就是说,Z(2)调用P(21)100次,P(21)调用Z(2)0次。
节点P(21)与P(22)之间的流量交互数据为(100,0),也就是说,P(21)调用P(22)100次,P(22)调用P(21)0次。节点P(21)与P(32)之间的流量交互数据为(150,0),P(21)与P(32)之间在图中位置关系是P(21)在左,P(32)在右,也就是说,P(21)调用P(32)150次,P(32)调用P(21)0次。
节点P(22)与P(23)之间的流量交互数据为(300,0),也就是说,P(22)调用P(23)300次,P(23)调用P(22)0次。节点P(22)与P(32)之间的流量交互数据为(40,100),也就是说,P(22)调用P(32)40次,P(32)调用P(22)100次。节点P(22)与P(33)之间的流量交互数据为(450,0),P(22)与P(33)之间在图中位置关系是P(22)在左,P(33)在右,也就是说,P(22)调用P(33)450次,P(33)调用P(22)0次。
节点Z(3)与P(31)之间的流量交互数据为(60,0),也就是说,Z(3)调用P(31)100次,P(31)调用Z(3)0次。
节点P(31)与P(32)之间的流量交互数据为(80,0),也就是说,P(31)调用P(32)80次,P(32)调用P(31)0次。
从图1可以看出,不同节点的调用与被调用情况是不同的,因此,在流量的需求上也是不同的。如果按照传统方案,不考虑不同节点对于流量需求的差异性,按照统一的固化标准分配流量(即限流),会导致有的节点流量额度用不完,有的节点流量额度不够,这种粗放的限流方式达到的限流效果很差。而在本申请实施例的方案中,详细统计和分析各个节点之间的流量交互数据,针对不同节点的不同流量额度需求来分配流量,从而达到更好的限流效果。
在一个实施例中,如图2所示,提供了一种流量控制方法,包括以下步骤:
步骤201,获取N个节点的流量交互数据。
流量交互数据可以用节点之间的调用和被调用的次数来表示,也就是说,调用和被调用次数越多,流量消耗越高,流量需求也越高。
在本申请实施例中,可以利用如图1所示的分布式节点交互图来得到每个节点的流量交互数据,也可以建立分布式节点的流量交互数据表来得到不同节点之间的流量交互数据。
在一些实现方式中,可以统计和收集分布式系统中一个较长周期内,各节点之间的流量交互历史数据。具体操作方式一般为通过分布式日志监控系统,整合提取整个系统内的服务调用方向和次数,为以具体节点为维度的总流量交互数据,形成可进行数据分析的文件。
可选地,可以在分布式节点流量交互图(例如图1)的基础上,经过数据清洗和加载,得出节点之间的交互流量数据及正反方向,如表1所示。可以看到,节点之间的交互实际为关系向量形式,对于节点A来说,A调用B体现为正数,B调用A体现为负数,绝对值为调用次数,该关系向量体现了A、B节点之间的调用关系。例如,节点1与节点2之间的流量交互数据是(10,-20),也就是说,节点1调用节点2共10次,节点2调用节点1共20次。根据常理,由于被调用方节点承受的资源消耗要远高于调用方,因此该关系向量体现了该分布式系统整体负荷的基本来源。也就是说,某个节点的被调用次数更能体现其流量需求。
表1
步骤202,根据流量交互数据,从N个节点中确定至少一个中心节点。
如上文所述,流量交互数据是各个节点之间互相调用和被调用的情况,即交互情况,所以可以从这些流量交互数据中,分析出中心节点和非中心节。中心节点可以理解为流量需求高的节点或者是流量额度高的节点,中心节点调用和被调用的次数相对较高。
步骤202可以理解为是筛选出中心节点的步骤。
步骤203,根据中心节点的流量限值,确定N个节点中第一节点的流量限值。
其中,第一节点是N个节点中与中心节点存在交互的节点。
也就是说,主要根据中心节点的流量限值来进一步确定每个与中心节点交互的子节点的流量限值。
上述流量控制方法中,通过根据N个节点之间的流量交互数据来从中找出中心节点,然后根据中心节点的流量限值来确定各个节点的流量限值。充分考虑了流量交互的特性,区分中心节点和非中心节点,从而更加精确地为分布式节点分配流量,更适用于分式场景。
在实际场景中,分布式系统各节点承担的流量负荷一般存在较大差异,理论上存在作为服务调用支撑的中心节点和非中心节点(即子节点)的区分,而中心节点的流量上限会限制其提供服务的各子节点的流量上限。假设中心节点的流量限值为Q(N),其各子节点的流量限值依次为{q(1),q(2),..,q(n)},则为了确保压力中心节点的负荷低于上限,必须成立。但传统的分布式限流技术方案均不够重视各分布式节点之间的关联关系,不能区分中心节点和普通子节点,也就不能在分布式中心节点的流量限值范围内,进一步细化确定各子节点的流量限值。
在一个实施例中,如图3所示,步骤202包括:
步骤301,根据N个节点的流量交互数据,确定N个节点中每个节点的负荷参数。
在一种实现方式中,可以设置单个分布式节点的负荷参数的计算模型:设负荷参数(即压力负荷)为L,被调用次数为m,被调用次数权重为k,被调用节点数为n,被调用节点数权重为g,则L=m*k+n*g,m和n为非负整数,K和g为实数。对于各个分布式节点来说,压力负荷值L体现了节点之间的压力负荷差异。
步骤302,将N个节点中,负荷参数在预设范围内的节点确定为中心节点。
可选地,可以设置一个压力负荷基准值μ,选择所有节点中符合L>=μ的节点,作为压力中心节点的可选范围T。也就是说,可选范围T即为上述负荷参数的预设范围。
以表1为例,在从表1中的数据可以识别出,节点5的压力负荷值为各节点中最高。应该指出的是,压力中心节点和子节点的关系不是静态或者固定的,比如一个压力中心节点本身也可以作为一个子节点存在于系统中。
还应理解,压力负荷基准值μ可通过测试及生产数据进行反复学习、验证和优化。
图4是本申请实施例的中心节点的模型示意图。如图4所示,中心集群A是中心节点A的节点集群,中心集群A中包括一个中心节点A和子节点4和子节点5。也就是说,中心节点A对应两个存在交互的子节点,以及还包括存在交互的中心节点B。中心集群B是中心节点B的节点集群,中心集群B中包括一个中心节点B和子节点1-3。也就是说,中心节点A对应两个存在交互的子节点,以及还包括存在交互的中心节点A。图4中还标出了节点之间的调用量。应理解,子节点是与中心节点存在交互的非中心节点,而上文所述第一节点是与中心节点存在交互的任意节点,所以第一节点可能是子节点也可能是其他中心节点,例如,中心节点A的第一节点可以是子节点4或子节点5或中心节点B。
也就是说,在单个分布式节点的负荷参数的计算模型的基础上,建立分布式的中心节点的模型:该模型内部包括一个分布式中心节点和N个子节点,模型特征可通过公式M={C,S(p)}表示,C为压力中心节点,S(p)={P(1),P(2),P(3),...,P(n)},其中压力负荷L(C)=L(S(p))*β,β为生产修正系数,理论上无限接近1。在整个系统空间内,可搜索出符合中心节点的模型特征的节点集群。
在一个实施例中,如图5所示,步骤203包括:
步骤501,根据N个节点中第一节点的设备参数,确定第一节点的预测流量限值。
其中,每个中心节点对应至少一个第一节点。
可选地,可以根据大数据学习,生成单个子节点的实际可用流量限值的预测值。
各分布式节点的流量限值取决于节点的设备参数,该设备参数可以包括内存容量、中央处理器(Central Processing Unit,CPU)配置、网络硬件规格或中间件配置等中的至少一项。虽然节点的流量限值受到多个变量的影响,但这种关系并非明显的函数映射。
在一个实施例中,为了解决难以量化的问题,可以通过引入多维变量线性回归的机器学习算法,分析和提取其内在的关联规则,形成可用的计算模型,并通过采集流量交互数据和设备参数等数据进行优化提升。
步骤502,根据每个第一节点的预测流量限值与中心节点的流量限值,确定每个第一节点的流量限值。
对于一个特定的分布式中心集群而言,各子节点的流量上限应受到压力中心节点的控制,确保在任意时刻成立。同时,为了应对生产环境的突然变化,比如部分节点不可用或流量异常,在满足该条件的前提下,集群内部各子节点的流量应可动态分配调整。通过线性规划算法,可以根据生产环境变量的实时变化,随时触发调整分配结果。
可以理解为,节点的流量需求会体现在上述设备参数的实时参数上,所以,如果上述第一节点的设备参数发生了变化,则步骤501得到的第一节点的预测流量限值也会发生变化,而在执行步骤502时,也会重新确定第一节点的流量限值。
线性规划约束条件可以表示如下,其中Max(Q(n))为分布式压力中心节点流量上限,Max(q(n))为子节点流量上限,n为有效子节点数量,也可以理解为n是需要确定流量限值的节点数量。单节点的流量上限和n的具体数值是随着生产环境动态变化的:如果某单个节点发生硬件升级引起流量上限提升,则Max(q(n))增大,反之降低;如果某单个节点(m)发生异常不可用,则n的数量减少1,同时q(m)被从约束条件中舍去;如果系统中新加入某个节点,则n的数量增加1,同时新节点的流量限额被加入约束条件。
设{Q(n)<=Max(Q(n));
q(1)<=Max(q(1));
...
q(n)<=Max(q(n));
},求{q(1),q(2),..q(n)}和Q(n)的最优解。导入实时的流量交互数据和设备参数等数据后,调用上述计算模型,即可得到每个中心节点对应的每个分布式子节点的流量限值。
在一个实施例中,如图6所示,步骤501包括:
步骤601,根据N个节点中第一节点的设备参数,确定第一节点的流量限值等级。
可选地,单节点的流量限值等级可以将流量限值按照从高到低分为N个层次,每个层次可对应实际流量限值的一个区间,例如限值等级就可以包括A、B,A的对应流量限值范围可以是[A1,A2],B的对应流量限值范围可以是[B1,B 2]。A1、A2、B1、B 2的具体数值可以按照实际需求确定。
步骤602,根据流量限值等级,确定第一节点的预测流量限值。
也就是说,可以建立流量限值等级与预测流量限值之间的对应关系,从而确定具体的预测流量限值。步骤601和步骤602的执行使得不需要计算非常精确具体的流量需求值,而只需要根据参数大致估算,因此,响应速度更快。
在一个实施例中,如图7所示,步骤502包括:
步骤701,根据每个第一节点的预测流量限值,确定中心节点的预测流量限值。
其中,中心节点的预测流量限值是第一节点的预测流量限值的总和。也就是说,每个中心节点的所有第一节点的流量需求的总和就是该中心节点的流量需求。
步骤702,根据中心节点的预测流量限值和中心节点的流量限值的关系,确定每个第一节点的流量限值。
需要说明的是,在本申请实施例中,涉及了预测流量限值和流量限值,二者是不同的概念。预测流量限值可以理解为预估(估计)的流量需求,流量限值则可以理解为实际会分配给节点的可用流量额度。
在一个实施例中,如图8所示,步骤702包括:
步骤801,当中心节点的预测流量限值小于或等于中心节点的流量限值时,将每个第一节点的预测流量限值确定为每个第一节点的流量限值。
也就是说,如果预测到中心节点的流量限值并不超标,就不进行流量限值的调整。这样可以避免无效调整。
步骤802,当中心节点的预测流量限值大于中心节点的流量限值时,根据每个第一节点的预测流量限值在中心节点的预测流量限值的权重和中心节点的流量限值,确定每个第一节点的流量限值。
也就是说,如果预测到中心节点的流量限值超标,就根据不同节点的实际需求调整流量限值。这样可以准确按需调整。例如某个节点的流量需求较大,就可以得到较大的流量限值;某个节点异常,得到的预测流量限值就是0或者接近0,就可以不给该节点分配流量限值,不再一一列举。
图9是本申请实施例的另一种流量控制方法的示意性流程图。图9可以看作是图2所示方法的一个具体示例。
步骤901,获取分布式系统生产监控数据。
步骤902,统计分布式节点流量交互数据。
步骤901-902可以看作是步骤201的一个示例。
步骤903,生成分布式节点流量交互矩阵。
该交互矩阵可以如表1所示。
可选地,可以将节点之间的流量交互数据,经过预处理,例如数据清洗、数据降噪,转换为分布式节点流量交互矩阵。
步骤904,筛选分布式中心节点。
步骤904可以看作是步骤202的一个示例。也可以看作是图3所示方法的一个示例。因此可以参照步骤202和图3相关内容,不再重复。
步骤905,构建分布式中心节点的模型。
该中心节点的模型可以如图4所示。
步骤906,预测分布式节点的预测流量限值。
在一个实施例中,步骤906可以包括:
S1,预设由多个影响因子构成的集合X={X(1),X(2),...,X(n)},其中每一个因子都被认为可对单个分布式节点的流量限值产生实际影响。一般根据实际经验进行提取和组合,比较常见的有内存容量级别、CPU规格级别、网络硬件规格、中间件配置等。
S2,设单节点流量限值分级D=W(1)*X(1)+W(2)*X(2)+...+W(n)*X(n)+B,其中W(n)为各影响因子的权重变量,B为常数变量。单节点的流量限值等级是将流量限值按照高低档次分为多个层次,每个层次可对应实际流量限值的一个区间,例如限值等级(A,B,C)可对应流量限值(1000-3000,500-1000,0-500)。但应理解此处数值指示一个示例,不存在具体限定。
S3,基于一段周期内的生产数据集S作为模型学习依据,使用线性回归模型最小二乘法,可得出在S范围中D=W(1)*X(1)+W(2)*X(2)+...+W(n)*X(n)+B的最优近似解D*,该近似解体现了W和B的最优近似值。
S4,通过线性回归学习算法得到D*后,再加入其他周期内的生产数据集S’进行模型调优,得到D的最优解公式。
S5,当实际生产环境中各个影响因子出现变化时,只需实时导入该最优解公式即可计算出单个分布式节点的流量限值分级。然后通过流量限值分级和实际流量限值的对照关系,可得出单个分布式节点的流量限值。
需要说明的是,S1-S5只是给出了一种寻优算法的示例,本领域技术人员也可以采用其他寻优算法或者说其他线性回归模型得到每个分布式节点的流量限值。例如上述最小二乘线性回归模型还可以是其他线性回归模型,例如随机梯度、极大似然等等,不再一一列举。
步骤907,分配每个分布式节点的流量限值。
步骤907可以参照步骤502,以及图7和图8的相关介绍,不再重复。
步骤905-907可以看作是步骤203的一个示例。
图9所示方法,实时获取生产监控数据,来生成流量交互数据,根据流量交互数据筛选出中心节点,然后构建中心节点的模型,以及利用机器学习算法得到预测流量限值,然后分配流量限值。该方法能够实现对分布式系统的流量的动态分配,也能够实现对分布式系统的流量在线控制,原因在于,图9所示方法是获取在线数据(实时的生产监控数据)并进行分析处理的。此外,利用机器学习方法寻求最优解,从而得到每个节点的预测流量限值,朱雀星更高,因此,对于每个节点的流量限值的分配也会更加合理。也就是说,图9所示方法能够进一步提高流量分配的合理性,从而使得流量分配更加合理,限流效果更好,且可以实现流量的在线控制。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照顺序依次显示,但是这些步骤并不是必然按照图示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的流量控制方法的流量控制装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个流量控制装置实施例中的具体限定可以参见上文中对于流量控制方法的限定,在此不再赘述。
在一个实施例中,如图10所示,提供了一种流量控制装置,该流量控制装置1000包括:获取模块1001和处理模块1002。
该装置1000能够用于执行本申请实施例中任意一种实现方式的流量控制方法的步骤。例如,获取模块1001可以用于执行步骤201,处理模块1002可以用于执行步骤202和203。处理模块1002还可以用于执行步骤301-302、501-502、601-602、701-702以及801-802。
在一个实施例中,获取模块1001,用于获取N个节点的流量交互数据;处理模块1002,用于根据流量交互数据,从N个节点中确定至少一个中心节点;处理模块1002还用于根据中心节点的流量限值,确定N个节点中第一节点的流量限值;第一节点是N个节点中与中心节点存在交互的节点。
在其中一个实施例中,处理模块1002具体用于:
根据N个节点的流量交互数据,确定N个节点中每个节点的负荷参数;
将N个节点中,负荷参数在预设范围内的节点确定为中心节点。
在其中一个实施例中,每个中心节点对应至少一个第一节点;处理模块1002具体用于:
根据N个节点中第一节点的设备参数,确定第一节点的预测流量限值;
根据每个第一节点的预测流量限值与中心节点的流量限值,确定每个第一节点的流量限值。
在其中一个实施例中,处理模块1002具体用于:
根据N个节点中第一节点的设备参数,确定第一节点的流量限值等级;
根据流量限值等级,确定第一节点的预测流量限值。
在其中一个实施例中,处理模块1002具体用于:
根据每个第一节点的预测流量限值,确定中心节点的预测流量限值;中心节点的预测流量限值是第一节点的预测流量限值的总和;
根据中心节点的预测流量限值和中心节点的流量限值的关系,确定每个第一节点的流量限值。
在其中一个实施例中,处理模块1002具体用于:
当中心节点的预测流量限值小于或等于中心节点的流量限值时,将每个第一节点的预测流量限值确定为每个第一节点的流量限值;或者
当中心节点的预测流量限值大于中心节点的流量限值时,根据每个第一节点的预测流量限值在中心节点的预测流量限值的权重和中心节点的流量限值,确定每个第一节点的流量限值。
上述流量控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储流量交互数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种流量控制方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取N个节点的流量交互数据;根据流量交互数据,从N个节点中确定至少一个中心节点;根据中心节点的流量限值,确定N个节点中第一节点的流量限值;第一节点是N个节点中与中心节点存在交互的节点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据N个节点的流量交互数据,确定N个节点中每个节点的负荷参数;
将N个节点中,负荷参数在预设范围内的节点确定为中心节点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:每个中心节点对应至少一个第一节点;根据中心节点的流量限值,确定N个节点中第一节点的流量限值,包括:
根据N个节点中第一节点的设备参数,确定第一节点的预测流量限值;
根据每个第一节点的预测流量限值与中心节点的流量限值,确定每个第一节点的流量限值。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据N个节点中第一节点的设备参数,确定第一节点的流量限值等级;
根据流量限值等级,确定第一节点的预测流量限值。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据每个第一节点的预测流量限值,确定中心节点的预测流量限值;中心节点的预测流量限值是第一节点的预测流量限值的总和;
根据中心节点的预测流量限值和中心节点的流量限值的关系,确定每个第一节点的流量限值。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当中心节点的预测流量限值小于或等于中心节点的流量限值时,将每个第一节点的预测流量限值确定为每个第一节点的流量限值;或者
当中心节点的预测流量限值大于中心节点的流量限值时,根据每个第一节点的预测流量限值在中心节点的预测流量限值的权重和中心节点的流量限值,确定每个第一节点的流量限值。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取N个节点的流量交互数据;根据流量交互数据,从N个节点中确定至少一个中心节点;根据中心节点的流量限值,确定N个节点中第一节点的流量限值;第一节点是N个节点中与中心节点存在交互的节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据N个节点的流量交互数据,确定N个节点中每个节点的负荷参数;
将N个节点中,负荷参数在预设范围内的节点确定为中心节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:每个中心节点对应至少一个第一节点;根据中心节点的流量限值,确定N个节点中第一节点的流量限值,包括:
根据N个节点中第一节点的设备参数,确定第一节点的预测流量限值;
根据每个第一节点的预测流量限值与中心节点的流量限值,确定每个第一节点的流量限值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据N个节点中第一节点的设备参数,确定第一节点的流量限值等级;
根据流量限值等级,确定第一节点的预测流量限值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据每个第一节点的预测流量限值,确定中心节点的预测流量限值;中心节点的预测流量限值是第一节点的预测流量限值的总和;
根据中心节点的预测流量限值和中心节点的流量限值的关系,确定每个第一节点的流量限值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当中心节点的预测流量限值小于或等于中心节点的流量限值时,将每个第一节点的预测流量限值确定为每个第一节点的流量限值;或者
当中心节点的预测流量限值大于中心节点的流量限值时,根据每个第一节点的预测流量限值在中心节点的预测流量限值的权重和中心节点的流量限值,确定每个第一节点的流量限值。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:获取N个节点的流量交互数据;根据流量交互数据,从N个节点中确定至少一个中心节点;根据中心节点的流量限值,确定N个节点中第一节点的流量限值;第一节点是N个节点中与中心节点存在交互的节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据N个节点的流量交互数据,确定N个节点中每个节点的负荷参数;
将N个节点中,负荷参数在预设范围内的节点确定为中心节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:每个中心节点对应至少一个第一节点;根据中心节点的流量限值,确定N个节点中第一节点的流量限值,包括:
根据N个节点中第一节点的设备参数,确定第一节点的预测流量限值;
根据每个第一节点的预测流量限值与中心节点的流量限值,确定每个第一节点的流量限值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据N个节点中第一节点的设备参数,确定第一节点的流量限值等级;
根据流量限值等级,确定第一节点的预测流量限值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据每个第一节点的预测流量限值,确定中心节点的预测流量限值;中心节点的预测流量限值是第一节点的预测流量限值的总和;
根据中心节点的预测流量限值和中心节点的流量限值的关系,确定每个第一节点的流量限值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当中心节点的预测流量限值小于或等于中心节点的流量限值时,将每个第一节点的预测流量限值确定为每个第一节点的流量限值;或者
当中心节点的预测流量限值大于中心节点的流量限值时,根据每个第一节点的预测流量限值在中心节点的预测流量限值的权重和中心节点的流量限值,确定每个第一节点的流量限值。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种流量控制方法,其特征在于,所述方法包括:
获取N个节点的流量交互数据;所述流量交互数据为N个节点之间的调用和被调用的次数;
根据所述流量交互数据,从所述N个节点中确定至少一个中心节点,包括:根据所述N个节点的流量交互数据,确定所述N个节点中每个节点的负荷参数;将所述N个节点中,所述负荷参数在预设范围内的节点确定为所述中心节点;
根据所述中心节点的流量限值,确定所述N个节点中第一节点的流量限值;所述第一节点是所述N个节点中与所述中心节点存在交互的节点。
2.根据权利要求1所述的方法,其特征在于,所述根据所述N个节点的流量交互数据,确定所述N个节点中每个节点的负荷参数,包括:
根据所述N个节点的流量交互数据和负荷参数计算模型,确定所述N个节点中每个节点的负荷参数;
所述负荷计算模型表示为:
L=m*k+n*g
其中,L为每个节点的负荷参数,m为每个节点的被调用次数,k为每个节点的被调用次数权重,n为每个节点的被调用节点数,g为每个节点的被调用节点数权重。
3.根据权利要求1所述的方法,其特征在于,每个所述中心节点对应至少一个所述第一节点;所述根据所述中心节点的流量限值,确定所述N个节点中第一节点的流量限值,包括:
根据所述N个节点中第一节点的设备参数,确定所述第一节点的预测流量限值;
根据每个所述第一节点的预测流量限值与所述中心节点的流量限值,确定每个所述第一节点的流量限值。
4.根据权利要求3所述的方法,其特征在于,所述根据所述N个节点中第一节点的设备参数,确定所述第一节点的预测流量限值,包括:
根据所述N个节点中第一节点的设备参数,确定所述第一节点的流量限值等级;
根据所述流量限值等级,确定所述第一节点的预测流量限值。
5.根据权利要求3所述的方法,其特征在于,所述根据每个所述第一节点的预测流量限值与所述中心节点的流量限值,确定每个所述第一节点的流量限值,包括:
根据每个所述第一节点的预测流量限值,确定所述中心节点的预测流量限值;所述中心节点的预测流量限值是所述第一节点的预测流量限值的总和;
根据所述中心节点的预测流量限值和所述中心节点的流量限值的关系,确定每个所述第一节点的流量限值。
6.根据权利要求5所述的方法,其特征在于,所述根据所述中心节点的预测流量限值和所述中心节点的流量限值的关系,确定每个所述第一节点的流量限值,包括:
当所述中心节点的预测流量限值小于或等于所述中心节点的流量限值时,将每个所述第一节点的预测流量限值确定为每个所述第一节点的流量限值;或者
当所述中心节点的预测流量限值大于所述中心节点的流量限值时,根据每个所述第一节点的预测流量限值在所述中心节点的预测流量限值的权重和所述中心节点的流量限值,确定每个所述第一节点的流量限值。
7.一种流量控制装置,其特征在于,所述装置包括:
获取模块,用于获取N个节点的流量交互数据;所述流量交互数据为N个节点之间的调用和被调用的次数;
处理模块,用于根据所述流量交互数据,从所述N个节点中确定至少一个中心节点,包括:根据所述N个节点的流量交互数据,确定所述N个节点中每个节点的负荷参数;将所述N个节点中,所述负荷参数在预设范围内的节点确定为所述中心节点;根据所述中心节点的流量限值,确定所述N个节点中第一节点的流量限值;所述第一节点是所述N个节点中与所述中心节点存在交互的节点。
8.根据权利要求7所述的装置,其特征在于,每个中心节点对应至少一个第一节点;所述处理模块用于:根据N个节点中第一节点的设备参数,确定第一节点的预测流量限值;根据每个第一节点的预测流量限值与中心节点的流量限值,确定每个第一节点的流量限值。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210749726.XA CN115134301B (zh) | 2022-06-29 | 2022-06-29 | 流量控制方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210749726.XA CN115134301B (zh) | 2022-06-29 | 2022-06-29 | 流量控制方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115134301A CN115134301A (zh) | 2022-09-30 |
CN115134301B true CN115134301B (zh) | 2024-04-05 |
Family
ID=83380157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210749726.XA Active CN115134301B (zh) | 2022-06-29 | 2022-06-29 | 流量控制方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115134301B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9306771B1 (en) * | 2012-11-16 | 2016-04-05 | Sprint Spectrum L.P. | Systems and methods of managing network communication |
CN110430142A (zh) * | 2019-08-16 | 2019-11-08 | 北京百度网讯科技有限公司 | 用于控制流量的方法和装置 |
CN110858808A (zh) * | 2018-08-23 | 2020-03-03 | 阿里巴巴集团控股有限公司 | 一种实现限速的方法、系统及装置 |
CN112702321A (zh) * | 2020-12-15 | 2021-04-23 | 深圳市快付通金融网络科技服务有限公司 | 分布式交易限流方法、装置、设备及存储介质 |
-
2022
- 2022-06-29 CN CN202210749726.XA patent/CN115134301B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9306771B1 (en) * | 2012-11-16 | 2016-04-05 | Sprint Spectrum L.P. | Systems and methods of managing network communication |
CN110858808A (zh) * | 2018-08-23 | 2020-03-03 | 阿里巴巴集团控股有限公司 | 一种实现限速的方法、系统及装置 |
CN110430142A (zh) * | 2019-08-16 | 2019-11-08 | 北京百度网讯科技有限公司 | 用于控制流量的方法和装置 |
CN112702321A (zh) * | 2020-12-15 | 2021-04-23 | 深圳市快付通金融网络科技服务有限公司 | 分布式交易限流方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115134301A (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108090225A (zh) | 数据库实例的运行方法、装置、系统及计算机可读存储介质 | |
WO2016161296A1 (en) | Multi-cluster management method and device | |
Nishimura et al. | Stability of stochastic optimal growth models: a new approach | |
CN109510869A (zh) | 一种基于边缘计算的物联网服务动态卸载方法及装置 | |
CN108804383B (zh) | 基于度量空间的支撑点并行枚举方法及装置 | |
CN113485792B (zh) | 一种kubernetes集群内Pod调度方法、终端设备及存储介质 | |
CN114185679B (zh) | 容器资源调度方法、装置、计算机设备和存储介质 | |
Dogani et al. | K-agrued: A container autoscaling technique for cloud-based web applications in kubernetes using attention-based gru encoder-decoder | |
CN116016115A (zh) | 网络线路的流量监控方法、装置、设备、介质和程序产品 | |
CN115115004A (zh) | 决策树模型构建及应用方法、装置和相关设备 | |
CN115134301B (zh) | 流量控制方法、装置、计算机设备和存储介质 | |
CN110851282B (zh) | 一种基于内存网格的分布式数据计算方法及系统 | |
CN111783487A (zh) | 一种读卡器设备的故障预警方法及装置 | |
CN117435335A (zh) | 算力调度方法、装置、计算机设备和存储介质 | |
CN114997401B (zh) | 自适应推理加速方法、装置、计算机设备和存储介质 | |
CN116089367A (zh) | 动态分桶方法、装置、电子设备和介质 | |
CN113438678B (zh) | 一种为网络切片分配云资源的方法及装置 | |
CN113449008B (zh) | 一种建模方法及装置 | |
CN114066310A (zh) | 审批任务分配方法、装置、计算机设备和存储介质 | |
CN112905119A (zh) | 一种分布式存储系统的数据写入控制方法、装置及设备 | |
CN116757388B (zh) | 一种基于冗余约束筛选的电力市场出清方法及装置 | |
CN108471362A (zh) | 资源分配预测方法和装置 | |
CN117539587A (zh) | 资源调度方法、装置、计算机设备、存储介质和程序产品 | |
CN118012618A (zh) | 接口请求的调度方法、装置、计算机设备、存储介质 | |
CN117873304A (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 |