CN113852571B - 分配流量的方法以及装置 - Google Patents
分配流量的方法以及装置 Download PDFInfo
- Publication number
- CN113852571B CN113852571B CN202110962322.4A CN202110962322A CN113852571B CN 113852571 B CN113852571 B CN 113852571B CN 202110962322 A CN202110962322 A CN 202110962322A CN 113852571 B CN113852571 B CN 113852571B
- Authority
- CN
- China
- Prior art keywords
- flow
- graph
- weight
- point cut
- cut set
- 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 64
- 238000005457 optimization Methods 0.000 claims abstract description 31
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 30
- 238000002474 experimental method Methods 0.000 claims description 191
- 238000009826 distribution Methods 0.000 claims description 26
- 238000010586 diagram Methods 0.000 claims description 21
- 238000004364 calculation method Methods 0.000 claims description 17
- 230000011218 segmentation Effects 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 239000013585 weight reducing agent Substances 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 230000008685 targeting Effects 0.000 claims 1
- 238000005520 cutting process Methods 0.000 abstract description 2
- 239000010410 layer Substances 0.000 description 88
- 238000004891 communication Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 230000000694 effects Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 6
- 238000005192 partition Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 239000002356 single layer Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 102100029095 Exportin-1 Human genes 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 108700002148 exportin 1 Proteins 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 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
- 238000000926 separation method Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000011144 upstream manufacturing 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/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/805—QOS or priority aware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书实施例提供分配流量的方法以及装置,其中所述分配流量的方法包括:获取实验全局图,将实验全局图转换为有向图,所述有向图中有向边的权重根据对应节点的权重确定,按照求优化点割集的目标,利用有向图中有向边的权重,基于最小割算法计算出所述有向图的优化点割集,其中,所述求优化点割集的目标是所述优化点割集占据的流量与其拆分出的子图占据的流量达到预设优化要求,利用所述优化点割集拆分所述实验全局图,得到若干个子图;利用所述优化点割集以及所述若干个子图,构造出用于分配流量的流量层域结构;所述流量层域结构包括重叠域及独立域,重叠域的各个子图层之间复用流量,所述独立域相对于重叠域单独使用流量。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种分配流量的方法。本说明书一个或者多个实施例同时涉及一种分配流量的装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
互联网公司进行产品更新、策略迭代的常用方式是将流量随机分到多个版本,版本之间某些变量不同,收集不同版本的数据做假设验证,基于验证的结果决定策略是否可上线。
例如,ABTest单层实验,是简单基础的流量模型。该模型属于单层模型:所有实验都在同一层上,每个实验占据部分流量,自行分配对照组和实验组进行ABTest。再例如,ABTest分层实验,是为了进一步提高流量的利用效率而提出的分层流量模型。通过对实验进行分层,实验分到不同层中,层与层之间的流量正交打散,流量在穿过每一层的时候,会再次随机打散。和单层流量模型相比,分层流量模型流量可以多次复用,一个请求有可能被分配到多个实验中,提高了实验的并发度。
但是,由于需要实验者人工决定实验的层次结构,随着实验的增多,这个判断过程也日益复杂,给实验者带来了额外的成本,并且人为判断不准确时,还会引入参数冲突和流量浪费的问题。
发明内容
有鉴于此,本说明书施例提供了一种分配流量的方法。本说明书一个或者多个实施例同时涉及一种分配流量的装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种分配流量的方法,包括:获取实验全局图,所述实验全局图中:实验为节点、实验间关系为边、实验所需流量确定节点的权重;将所述实验全局图转换为有向图,所述有向图中有向边的权重根据对应节点的权重确定;按照预设的求优化点割集的目标,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的优化点割集,其中,所述求优化点割集的目标是所述优化点割集占据的流量与其拆分出的子图占据的流量达到预设优化要求;利用所述优化点割集拆分所述实验全局图,得到若干个子图;利用所述优化点割集以及所述若干个子图,构造出用于分配流量的流量层域结构;其中,所述流量层域结构包括重叠域及独立域,所述重叠域包括一个或多个子图层,优化点割集被放入独立域,每个子图被放入重叠域的一个子图层内,重叠域的各个子图层之间复用流量,所述独立域相对于重叠域单独使用流量。
可选地,所述获取实验全局图,包括:获取多个实验各自所需流量信息以及实验参数;根据所述实验所需流量确定实验的权重,以及,根据所述实验参数确定实验间关系;将所述实验作为节点,实验间关系作为边,构造实验全局图。
可选地,所述实验全局图中非源点且非汇点的任一节点,在所述有向图中对应拆分为两点,该两点之间的有向边的权重是利用该任一节点的权重,基于预设的权重计算规则计算得到的;所述预设的权重计算规则包括:在对应节点的权重基础上增加边权重基础值、在对应节点的权重基础上加倍、在对应节点的权重基础上减少该节点在实验全局图中的度确定的权重减少量、和/或,在对应节点的权重基础上以调整分割均匀度为目标增加权重。
可选地,所述在对应节点的权重基础上增加边权重基础值,包括:在对应节点的权重基础上增加第一非负常数调节系数确定的权重基础值;所述在对应节点的权重基础上加倍,包括:利用第二非负常数调节系数对节点的权重加倍;所述权重减少量等于第三非负常数调节系数乘以所述节点在实验全局图中的度得到的乘积;所述在对应节点的权重基础上以调整分割均匀度为目标增加权重,包括:在对应节点的权重基础上增加所述节点与源点的距离和与汇点的距离进行加权求和得到的增加权重量。
可选地,所述有向边的权重表示为W(i);W(i)=a+b*w(i)-c*D(i)+d*d(i,s)+e*d(i,t);其中,a表示第一非负常数调节系数、b表示第二非负常数调节系数、c为第三非负常数调节系数、d和e表示加权求和的非负常数调节系数,w(i)表示对应节点的权重,D(i)表示对应节点在实验全局图中的度,d(i,s)和d(i,t)分别表示对应节点与源点的距离和与汇点的距离。
可选地,所述求优化点割集的目标包括:优化点割集在实验全局图中拆分出的最大流量子图与优化点割集的流量和最小。
可选地,所述将所述实验全局图转换为有向图,包括:遍历所述实验全局图中的所有点,得到若干对源点和汇点的组合;基于每对源点和汇点的组合转换所述实验全局图,得到若干个有向图;所述按照预设的求优化点割集的目标,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的优化点割集,包括:遍历所述有向图;针对遍历到的每一个有向图,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的一个最小点割集;将转换自同一无向图的各个有向图对应计算出的若干个最小点割集,按照最小点割集出现次数从高到低排序;根据所述排序,从所述最小点割集的集合中选取出分割优化的预设数量个最小点割集;遍历所述预设数量个最小点割集;分别针对遍历到的每个最小点割集,使用该最小点割集对所述有向图对应的原无向图进行拆分,每个最小点割集对应得到拆分后的子图中的最大流量子图;将每个最小点割集对应的最大流量子图基于每对源点和汇点的组合转换为有向图;将各个最大流量子图转换得到的有向图作为遍历的对象,重新进入到所述遍历有向图的步骤,以便从中取得最小点割集以及继续对最大流量子图进行拆分,直到所述最大流量子图无法继续拆分;每次所述最大流量子图无法继续拆分时,对应获得一组能够从实验全局图开始拆分到最后的最小点割集的集合;遍历结束后,获取一组从若干组最小点割集的集合中选取出的、全局流量最小的优化点割集的集合。
可选地,所述实验为应用实验和/或参数实验,所述应用实验,是将应用作为变量的实验,所述参数实验是将参数作为变量的实验。
可选地,还包括:获取流量;根据各个实验在所述流量层域结构中的分布,分配所述流量;将分配的流量打给对应的实验。
可选地,所述将分配的流量打给对应的实验,包括:在所述实验为应用实验的情况下,获取所述应用实验对应的版本参数值;将分配给所述应用实验的流量在线通过服务网格打到所述版本参数值对应的应用实验上,其中,所述服务网格是不同版本的服务形成的交叉访问的网格结构,用于根据所述版本参数值进行流量的路由。
可选地,所述流量层域结构包括若干个连通层,每个连通层中包括一个独立域及其对应的重叠域,实验全局图中每个连通图的优化点割集被放入一个连通层的独立域,每个子图根据连通关系被放入对应重叠域的一个子图层内,各个连通层之间复用流量。
根据本说明书实施例的第二方面,提供了一种分配流量的装置,包括:全局图获取模块,被配置为获取实验全局图,所述实验全局图中:实验为节点、实验间关系为边、实验所需流量确定节点的权重。有向图转换模块,被配置为将所述实验全局图转换为有向图,所述有向图中有向边的权重根据对应节点的权重确定。最小割计算模块,被配置为按照预设的求优化点割集的目标,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的优化点割集,其中,所述求优化点割集的目标是所述优化点割集占据的流量与其拆分出的子图占据的流量达到预设优化要求。图拆分模块,被配置为利用所述优化点割集拆分所述实验全局图,得到若干个子图。层域构造模块,被配置为利用所述优化点割集以及所述若干个子图,构造出用于分配流量的流量层域结构。其中,所述流量层域结构包括重叠域及独立域,所述重叠域包括一个或多个子图层,优化点割集被放入独立域,每个子图被放入重叠域的一个子图层内,重叠域的各个子图层之间复用流量,所述独立域相对于重叠域单独使用流量。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:获取实验全局图,所述实验全局图中:实验为节点、实验间关系为边、实验所需流量确定节点的权重;将所述实验全局图转换为有向图,所述有向图中有向边的权重根据对应节点的权重确定;按照预设的求优化点割集的目标,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的优化点割集,其中,所述求优化点割集的目标是所述优化点割集占据的流量与其拆分出的子图占据的流量达到预设优化要求;利用所述优化点割集拆分所述实验全局图,得到若干个子图;利用所述优化点割集以及所述若干个子图,构造出用于分配流量的流量层域结构;其中,所述流量层域结构包括重叠域及独立域,所述重叠域包括一个或多个子图层,优化点割集被放入独立域,每个子图被放入重叠域的一个子图层内,重叠域的各个子图层之间复用流量,所述独立域相对于重叠域单独使用流量。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本说明书任意实施例所述分配流量的方法的步骤。
根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行本说明书任意实施例所述分配流量的方法的步骤。
本说明书一个实施例提供了分配流量的方法,该方法获取实验全局图,将实验全局图转换为有向图,按照预设的求优化点割集的目标,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的优化点割集。由于实验占据的流量尽可能小,则流量分配的效果更优,因此,本说明书实施例提供的方法中,所述求优化点割集的目标是所述优化点割集占据的流量与其余子图占据的流量达到预设优化要求。进而,利用所述优化点割集以及其拆分得到的若干个子图,能够自动构造出符合优化需要的、用于分配流量的流量层域结构。可见,本说明书实施例提供的方法对实验进行抽象建模,基于有向图的最小割算法对流量进行自动的分配,解决了人为安排实验难以避免的参数冲突和流量浪费的问题,提高了实验流量分配和利用效率。
附图说明
图1是本说明书一个实施例提供的一种分配流量的方法的流程图;
图2是本说明书一个实施例提供的实验全局图示意图;
图3是本说明书一个实施例提供的有向图示意图;
图4是本说明书一个实施例提供的流量层域结构;
图5是本说明书一个实施例提供的一种分配流量的方法的处理过程流程图;
图6是本说明书一个实施例提供的实验全局图的拆分过程示意图;
图7是本说明书一个实施例提供的参数赋值示意图;
图8是本说明书一个实施例提供的一种分配流量的装置的结构示意图;
图9是本说明书另一个实施例提供的一种分配流量的装置的结构示意图;
图10是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
参数实验:把参数作为变量的实验。一般参数实验部署一套代码,会在代码逻辑中把实验与对照的分支都写好,用参数来决定这个流量走哪个逻辑。
应用实验:把应用作为变量的实验。一般应用实验有两套代码,把实验和对照的代码分别部署在不同的机器上,实验平台把流量分到不同的机器上。
在本说明书中,提供了一种分配流量的方法,本说明书同时涉及一种分配流量的装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一个实施例提供的一种分配流量的方法的流程图,包括步骤102至步骤110。
步骤102:获取实验全局图,所述实验全局图中:实验为节点、实验间关系为边、实验所需流量确定节点的权重。
其中,所述实验全局图的获取方式不限。例如,可以直接获取实验者上传的实验全局图。再例如,可以根据实验者上传的相关信息构造获得。
步骤104:将所述实验全局图转换为有向图,所述有向图中有向边的权重根据对应节点的权重确定。
步骤106:按照预设的求优化点割集的目标,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的优化点割集,其中,所述求优化点割集的目标是所述优化点割集占据的流量与其余子图占据的流量达到预设优化要求。
在得到有向图后,原无向图的拆点问题,转为了有向图的最小割问题。在有向图中,确定源点Vs和汇点Vt后,最小割算法的思想是剪断图中的某几条边,使得不存在从Vs到Vt的路径,并且保证所减的边的权重和最小。因此,新增有向边的权重W(i)的取值决定了求最小割的目标。例如,如果W(i)取固定值1,那么最小割的目标即为:拆除最少的边让Vs′和Vt″不相连。在本说明书实施例提供的方法中,为了使优化点割集占据的流量与其拆分出的子图占据的流量达到预设优化要求,所述有向图中有向边的权重根据对应节点的权重确定。
步骤108:利用所述优化点割集拆分所述实验全局图,得到若干个子图。
步骤110:利用所述优化点割集以及所述若干个子图,构造出用于分配流量的流量层域结构。
其中,所述流量层域结构包括重叠域及所述重叠域对应的独立域,所述重叠域包括一个或多个子图层,优化点割集被放入独立域,每个子图被放入重叠域的一个子图层内,同一重叠域的各个子图层之间复用流量,所述独立域相对于重叠域单独使用流量。
为了进一步提高流量的利用效率,还可以对实验进一步分层。具体地,例如,所述流量层域结构可以包括若干个连通层,每个连通层中包括一个独立域及其对应的重叠域,实验全局图中每个连通图的优化点割集被放入一个连通层的独立域,每个子图根据连通关系被放入对应重叠域的一个子图层内,各个连通层之间复用流量。例如,图4所示的流量层域结构,实验按连通关系分到不同连通层如“LAYER1”和“LAYER2”中,层与层之间流量正交打散。在连通层内重叠域可以有多个子图层如图4所示的“Layer1”和“Layer2”。冲突的实验放在独立域中,剩下的实验可以放在子图层内,分层复用。由于流量在穿过每一层的时候,会再次随机打散,流量可以多次复用,一个请求有可能被分配到多个实验中,极大提高了实验的并发度。
可见,该方法获取实验全局图,将实验全局图转换为有向图,按照预设的求优化点割集的目标,利用所述有向图中节点的权重,基于最小割算法计算出所述有向图的优化点割集。由于实验占据的流量尽可能小,则流量分配的效果更优,因此,本说明书实施例提供的方法中,所述求优化点割集的目标是所述优化点割集占据的流量与其拆分出的子图占据的流量达到预设优化要求。进而,利用所述优化点割集以及其拆分得到的若干个子图,能够自动构造出符合优化需要的、用于分配流量的流量层域结构。本说明书实施例提供的方法根据实验之间的关系,对实验进行抽象建模,通过有向图的点割集算法自动安排实验的层次结构,以便对流量进行自动分配,实现了流量的智能分配,解决了人为安排实验难以避免的参数冲突和流量浪费的问题,提高了实验流量分配和利用效率。
本说明书一个或多个实施例中,为了提高分配流量的效率,所述获取实验全局图,包括:获取多个实验各自所需流量信息以及实验参数;根据所述实验所需流量确定实验的权重,以及,根据所述实验参数确定实验间关系;将所述实验作为节点,实验间关系作为边,构造实验全局图。在该实施例中,根据实验的流量信息及实验参数自动构造出实验全局图,避免了额外的人工处理,有效提高了实验流量分配效率。
例如,可以根据实施场景需要,获得实验者输入的实验需求,包括:实验所需流量条件及流量大小、实验所需应用、实验圈定桶及其参数和参数的取值等输入信息。其中,流量条件例如可以包括项目要求、上游渠道、流量来源等条件信息。
根据上述实施例,构造如图2所示的实验全局图G的过程可以包括:
把每一个实验抽象为一个顶点Vi,w(Vi)表示实验所需的流量,在这里抽象为每个点的权重;
两个实验Va与Vb有关联则用一条边(a,b)表示;使用相同参数或者选择相同应用的实验被定义为“有关联”。
在构造出实验全局图之后,为了找到优化的流量分配,需要在实验全局图中找到符合优化需求的点割集,让拆出这个点割集后剩余最大流量子图加上点割集的流量达到优化需求所需的大小,例如,达到最小。由于基于有向图的最小割算法能够找到符合最小割目标的点割集,因此,本说明书实施例提供的方法中,需要将实验全局图转换为有向图。例如,如图2所示的实验全局图,在选择Exp1作为源点,Exp8作为汇点后,转成的有向图如图3所示。
例如,将无向图转换为有向图的过程可以包括:
选点:选取无向图中2个点作为源点Vs和汇点Vt;
拆点:将无向图中每个点Vi在网络中拆为Vi’与Vi”
拆边:将无向图的每条边(i,j)拆为两条有向边<i’,j”>与<j’,i'’>,权重为无穷大;
连点:
对于源点Vs和汇点Vt,新增两条有向边<s”,s'>与<t”,t'>,权重为无穷大;
对于其余Vi点,新增有向边<i”,i'>,该边的权重W(i)根据对应节点Vi的权重确定。
由于优化点割集是利用有向图中有向边的权重计算得到的,因此,W(i)的取值方式对取得符合需求的优化点割集,具有重要的作用。W(i)取值越准确,计算出的优化点割集越好。因此,在本说明书一个或多个实施例中,预设了以下权重计算规则对有向边的权重进行计算。具体地,所述实验全局图中非源点且非汇点的任一节点,在所述有向图中对应拆分为两点,该两点之间的有向边的权重是利用该任一节点的权重,基于预设的权重计算规则计算得到的。其中,所述预设的权重计算规则包括:
规则一:在对应节点的权重基础上增加边权重基础值;
规则二:在对应节点的权重基础上加倍;
规则三:在对应节点的权重基础上减少该节点在实验全局图中的度确定的权重减少量;
和/或,
规则四:在对应节点的权重基础上以调整分割均匀度为目标增加权重。
上述四条规则在实际场景中可以择一或者任意组合的使用来提高W(i)取值的准确度。下面,分别对上述四条规则在W(i)取值中的作用一一进行说明:对于规则一,由于在对应节点的权重基础上增加边权重基础值,使得节点的权重的误差得以弱化。对于规则二,由于实验被拆分到独立域后流量无法直接复用,所以一般拆到独立域流量越小,结果越优,因此,通过在原无向图中点Vi权重基础上加倍,拉大不同有向边之间权重的差距,有利于更加准确地计算出最小割点。对于规则三:由于节点的度越大,拆除后去掉的边越多,拆出后越有可能产生更多的连通子图,因此,通过在对应节点的权重基础上减少该节点在实验全局图中的度确定的权重减少量,能够使得度越大的节点对应新增的有向边的权重越小,有利于更加准确地计算出最小割点。对于规则四,由于最小割仅考虑了外部连接,很容易使得子图划分出现歪斜分隔不均匀的现象,因此,在对应节点的权重基础上以调整分割均匀度为目标增加权重,有利于更加准确地计算出最小割点。例如,可以通过对节点分别与源汇两点的距离加权求和的方式进行优化,也可以采用正则割、比例割等其他方式避免分割不均匀的情况。
需要说明的是,上述四条规则在实际场景中的具体实施方式不限。例如,所述在对应节点的权重基础上增加边权重基础值,可以包括:在对应节点的权重基础上增加第一非负常数调节系数确定的权重基础值。所述在对应节点的权重基础上加倍,可以包括:利用第二非负常数调节系数对节点的权重加倍。所述权重减少量等于第三非负常数调节系数乘以所述节点在实验全局图中的度得到的乘积。所述在对应节点的权重基础上以调整分割均匀度为目标增加权重,可以包括:在对应节点的权重基础上增加所述节点与源点的距离和与汇点的距离进行加权求和得到的增加权重量。
本说明书一个或多个实施例中,将上述四个规则组合起来对有向边的权重进行计算。具体地,例如,所述有向边的权重表示为W(i)。
其中,W(i)=a+b*w(i)-c*D(i)+d*d(i,s)+e*d(i,t),a表示第一非负常数调节系数、b表示第二非负常数调节系数、c为第三非负常数调节系数、d和e表示加权求和的非负常数调节系数,w(i)表示对应节点的权重,D(i)表示对应节点在实验全局图中的度,d(i,s)和d(i,t)分别表示对应节点与源点的距离和与汇点的距离。
需要说明的是,本说明书实施例中所述预设优化要求可以根据实施场景需要设置,也即优化点割集占据的流量与其拆分出的子图占据的流量可以根据实施场景需要的优化效果,设置对应的要求。只要符合场景需要就能达到提高实验流量分配和利用率的效果。
例如,本说明书一个或多个实施例中,所述求优化点割集的目标可以包括:优化点割集在实验全局图中拆分出的最大流量子图与优化点割集的流量和达到最小。
具体地,该实施例中,为了找到符合目标的流量分配,需要在实验全局图中找到优化的最小点割集,让拆出这个点割集后剩余最大子图的流量加上点割集的流量最小。例如,在该实施例的处理过程中,可以从每个连通子图内部拆出一个或多个实验放到独立域,剩下的实验根据关联关系放在重叠域里,让实验占据的流量尽可能的小。即,对每一个连通子图Gi,找到一个集合V′,图Gi删除V′中的点和关联的边后,剩下的权重最大的连通块加上V′的权重和最小。可以理解的是,在不达到最小的情况下,例如,相对较小但超过一定比例,也能达到一定的优化效果。由于重叠域的实验是分层复用流量的,独立域的实验单独使用流量,那么当划分的层次结构使两个区域占据的流量和最小时,流量的利用率达到了极大的提高。例如,如图3所示的有向图,基于该求优化点割集的目标,可以计算出Exp11是优化点割集,进而构造出如图4所示的流量层域结构。
下述结合附图5,以本说明书提供的分配流量的方法中求优化点割集的目标为流量和最小为例,对所述分配流量的方法进行进一步说明。在图5中,所述按照预设的求优化点割集的目标,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的优化点割集的步骤,包括步骤508到步骤524。其中,图5示出了本说明书一个实施例提供的一种分配流量的方法的处理过程流程图,具体步骤包括步骤502至步骤528。
步骤502:获取实验全局图。
例如,如图6所示的实验全局图的拆分过程示意图所示,首先获取实验全局图601。
步骤504:遍历所述实验全局图中的所有点,得到若干对源点和汇点的组合。
步骤506:基于每对源点和汇点的组合转换所述实验全局图,得到若干个有向图。
步骤508:遍历所述有向图。
步骤510:针对遍历到的每一个有向图,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的一个最小点割集。
其中,所述最小割算法,可以采用DINIC算法计算最小割、FloodFill算法获取对应的最小点割集合等。对于每一个源点和汇点的组合,都能得到一个最小点割集,遍历图中所有点作为源点和汇点,就会得到一个最小点割集的集合。
例如,如图6所示,通过对实验全局图601的所有源点和汇点的组合的遍历,首先计算出了最小点割集{E}和{B}。
步骤512:将转换自同一无向图的各个有向图对应计算出的若干个最小点割集,按照最小点割集出现次数从高到低排序。
步骤514:根据所述排序,从所述最小点割集的集合中选取出分割优化的预设数量个最小点割集。
例如,把最小点割集按出现次数进行排序,从高频的Top10最小点割集中找到流量分割优化的3个集合,作为当前无向图的候选点割集。
步骤516:遍历所述预设数量个最小点割集。
步骤518:分别针对遍历到的每个最小点割集,使用该最小点割集对所述有向图对应的原无向图进行拆分,每个最小点割集对应得到拆分后的子图中的最大流量子图。
例如,使用最小点割集{E}划分出的子图如图6所示的子图划分示意图602所示。使用最小点割集{B}划分出的子图如图6所示的子图划分示意图604所示。
步骤520:将每个最小点割集对应的最大流量子图基于每对源点和汇点的组合转换为有向图,将各个最大流量子图转换得到的有向图作为遍历的对象,重新进入到步骤508所述遍历有向图(即,遍历各个最大流量子图转换得到的有向图)的步骤,以便继续从中取得最小点割集以及继续对所述最大流量子图进行拆分,直到所述最大流量子图无法继续拆分。
在本实施例中,选择最大流量子图继续拆分的原因是:求优化点割集的目标是让拆出来的最小割点和最大的连通子图的流量和最小,如果拆其他流量子图的话,最大连通子图的流量不变,但是独立域的流量变多了,那么总和将更大,因此,需要继续拆分最大流量子图,以使找出的最小点割集符合目标要求。
步骤522:每次最大流量子图无法继续拆分时,对应获得一组能够从实验全局图开始拆分到最后的最小点割集的集合。
例如,将子图划分示意图602所示的最大流量子图{A,B,C,D,J}转换为有向图后,重新进入步骤508,继续拆分子图,如图6所示的子图划分示意图603所示,从中继续取得最小点割集{A,B}。就此,由于子图无法继续拆分,获得从最小点割集{E}出发开始拆分到最后的、一组最小点割集的集合{A,B,E}。
再例如,将子图划分示意图604所示的最大流量子图{A,J,C,D}转换为有向图后,重新进入步骤508,继续拆分子图,如图6所示的子图划分示意图605所示,从中继续取得最小点割集{A}。由于子图{E,G,F}成为最大流量子图,因此,将子图{E,G,F}转换为有向图之后,重新进入步骤508,继续拆分子图,如图6所示的子图划分示意图606所示,从中继续取得最小点割集{E}。就此,由于子图无法继续拆分,获得从最小点割集{B}出发开始拆分到最后的、一组最小点割集的集合{A,B,E}。
步骤524:遍历结束后,获取一组从若干组最小点割集的集合中选取出的、全局流量最小的优化点割集的集合。
例如,根据图6所示的拆分过程示意图,最终得到全局优化点割集{A,B,E}。需要说明的是,虽然图6拆出的两组最小点割集的集合相同,但在实际实施场景中,若干组优化点割集的集合可能相同也可能不同,图6仅用于对拆分过程进行示意性说明。
步骤526:利用所述优化点割集的集合拆分所述实验全局图,得到若干个子图。
步骤528:利用所述优化点割集的集合以及所述若干个子图,构造出用于分配流量的流量层域结构。
例如,如图6所示的子图划分示意图606所示,构造出的流量层域结构包括:两个连通层。其中,一个连通层中包括:一个独立域及对应的重叠域,该独立域中放入了优化点割集{A,B,E},对应的重叠域中包括两个子图层,一个子图层中放入了子图{C,D,J},另一个子图层中放入了子图{G,F};另一个连通层中包括:一个独立域及对应的重叠域,该独立域为空,对应的重叠域中包括一个子图层,该子图层中放入了子图{H,I}。
通过上述步骤508-步骤524可见,首次找出TopN最小点割集后,可以分别使用这几个最小点割集,对实验全局图进行拆分,然后分别以拆分后的最大流量子图作为遍历的对象,重新进入步骤508计算最小点割集继续拆分最大流量子图,再次从最大流量子图中找出TopN最小点割集,直至最大流量子图无法拆分。每当最大流量子图无法拆分,说明得到了一组能够从实验全局图开始拆分到最后的最小点割集的集合。在遍历的过程中,可以保存拆分出流量最小的一组优化点割集合的集合,以获取全局的优化点割集。需要说明的是,在具体实现时,查找全局流量最小的优化点割集的查找方式不限,例如,可以同时并发地遍历,再例如,可以通过DFS算法,即栈和递归的方式依次遍历以找出全局流量最小的优化点割集的集合,在此不再详细赘述。
本说明书实施例提供的方法中的所述实验可以包括应用实验和/或参数实验。所述应用实验,是将应用作为变量的实验,所述参数实验是将参数作为变量的实验。基于本说明书实施例提供的方法,可以构造出用于对应用实验和/或参数实验统筹分配流量的流量层域结构,从而提高流量利用效率。
基于本说明书实施例提供的方法构造出的流量层域结构,可以对流量进行自动分配。具体地,例如,所述方法还可以包括:获取流量;根据各个实验在所述流量层域结构中的分布,分配所述流量;将分配的流量打给对应的实验。
另外,考虑到现有的实验平台,要么只接入了参数实验,要么支持应用实验但是应用实验通过拷贝一份独立的系统来完成,无法支持自动化部署的应用实验,也无法将参数实验与应用实验结合进行流量划分,导致流量、机器资源利用不够高效,且应用实验部署困难。结合上述实施例,为了能够将应用实验与参数实验一样自动分配流量,对于应用实验,与参数实验一样在实验全局图中化为一个点。通过版本参数化和服务网格化的方式,将应用实验和参数实验作为一个整体来统筹分配流量,自动部署应用,提高流量、机器利用效率,降低实验应用部署成本。
具体地,例如,所述将分配的流量打给对应的实验,包括:在所述实验为应用实验的情况下,获取所述应用实验对应的版本参数值;将分配给所述应用实验的流量在线通过服务网格打到所述版本参数值对应的应用实验上,其中,所述服务网格是不同版本的服务形成的交叉访问的网格结构,用于根据所述版本参数值进行流量的路由。可见,在该实施例中,版本参数化指的是,以应用作为实验变量等同于以参数作为实验变量,通过参数选择应用的版本。实验者在选择应用后,后台会自动根据这些应用选择对应的参数来做自动赋值。服务网格化指的是,在线通过服务网格的方式,根据这些参数,把流量打到对应的实验版本上。
可见,本实施例基于版本参数化的思想,以应用为实验变量等同于以参数作为实验变量,通过参数选择应用对应的版本,将应用实验与参数实验结合。例如,将参数接入后台后,可以自动对参数进行赋值,用户不感知。如图7所示的参数赋值示意图所示,不同应用对应不同的版本参数值。应用版本参数化后,如何根据参数把流量打到对应的实验版本上,是服务网格需要完成的功能。服务网格的基本思想是,不同版本的服务形成交叉访问的网格结构,在线根据参数路由寻找下游版本。需要说明的是,本说明书实施例提供的方法对于服务网格的具体实现方式并不进行限制。例如,服务网格框架的核心可以是基于ISTIO方案设计的GigMesh。GigMesh可以包括控制面和数据面。控制面负责服务发现和机房流控。数据面可以包括:与控制面进行协议交互的模块、路由单元内部动态负载均衡的模块、动态降级模块、实验方案解析中心等。
与上述方法实施例相对应,本说明书还提供了分配流量的装置实施例,图8示出了本说明书一个实施例提供的一种分配流量的装置的结构示意图。如图8所示,该装置包括:全局图获取模块802、有向图转换模块804、最小割计算模块806、图拆分模块808及层域构造模块810。
该全局图获取模块802,可以被配置为获取实验全局图,所述实验全局图中:实验为节点、实验间关系为边、实验所需流量确定节点的权重。
该有向图转换模块804,可以被配置为将所述实验全局图转换为有向图,所述有向图中有向边的权重根据对应节点的权重确定。
该最小割计算模块806,可以被配置为按照预设的求优化点割集的目标,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的优化点割集,其中,所述求优化点割集的目标是所述优化点割集占据的流量与其拆分出的子图占据的流量达到预设优化要求。
该图拆分模块808,可以被配置为利用所述优化点割集拆分所述实验全局图,得到若干个子图。
该层域构造模块810,可以被配置为利用所述优化点割集以及所述若干个子图,构造出用于分配流量的流量层域结构。
其中,所述流量层域结构包括重叠域及独立域,所述重叠域包括一个或多个子图层,优化点割集被放入独立域,每个子图被放入重叠域的一个子图层内,重叠域的各个子图层之间复用流量,所述独立域相对于重叠域单独使用流量。
可见,该装置获取实验全局图,将实验全局图转换为有向图,按照预设的求优化点割集的目标,利用所述有向图中节点的权重,基于最小割算法计算出所述有向图的优化点割集。由于实验占据的流量尽可能小,则流量分配的效果更优,因此,本说明书实施例提供的装置中,所述求优化点割集的目标是所述优化点割集占据的流量与其拆分出的子图占据的流量达到预设优化要求。进而,利用所述优化点割集以及其拆分得到的若干个子图,能够自动构造出符合优化需要的、用于分配流量的流量层域结构。本说明书实施例提供的装置根据实验之间的关系,对实验进行抽象建模,通过有向图的点割集算法自动安排实验的层次结构,以便对流量进行自动分配,实现了流量的智能分配,解决了人为安排实验难以避免的参数冲突和流量浪费的问题,提高了实验流量分配和利用效率。
图9示出了本说明书另一个实施例提供的一种分配流量的装置的结构示意图。本说明书一个或多个实施例中,如图9所示,为了提高分配流量的效率,该全局图获取模块802可以包括:信息获取子模块8022、关系确定子模块8024及全局图构造子模块8026。
该信息获取子模块8022,可以被配置为获取多个实验各自所需流量信息以及实验参数。
该关系确定子模块8024,可以被配置为根据所述实验所需流量确定实验的权重,以及,根据所述实验参数确定实验间关系。
该全局图构造子模块8026,可以被配置为将所述实验作为节点,实验间关系作为边,构造实验全局图。
由于优化点割集是利用有向图中有向边的权重计算得到的,因此,有向边的权重W(i)的取值方式对取得符合需求的优化点割集,具有重要的作用。W(i)取值越准确,计算出的优化点割集越好。因此,在本说明书一个或多个实施例中,预设了权重计算规则对有向边的权重进行计算,规则详细内容参见上述分配流量的方法的技术方案的描述,在此不再赘述。
需要说明的是,本说明书实施例中所述预设优化要求可以根据实施场景需要设置,也即优化点割集占据的流量与其拆分出的子图占据的流量可以根据实施场景需要的优化效果,设置对应的要求。只要符合场景需要就能达到提高实验流量分配和利用率的效果。
例如,本说明书一个或多个实施例中,所述求优化点割集的目标可以包括:优化点割集在实验全局图中拆分出的最大流量子图与优化点割集的流量和达到最小。例如,如图9所示,该实施例中的所述有向图转换模块804可以包括:源汇点遍历子模块8042及图转换子模块8044。其中,该源汇点遍历子模块8042,可以被配置为遍历所述实验全局图中的所有点,得到若干对源点和汇点的组合。该图转换子模块8044,可以被配置为基于每对源点和汇点的组合转换所述实验全局图,得到若干个有向图。相应地,所述最小割计算模块806可以包括:有向图遍历子模块8062、点割集计算子模块8064、排序子模块8066、点割集选取子模块8068、点割集遍历子模块8070、子图拆分子模块8072、子图转换子模块8074、集合获得子模块8076及优化点割集获得子模块8078。
该有向图遍历子模块8062,可以被配置为遍历所述有向图。
该点割集计算子模块8064,可以被配置为针对遍历到的每一个有向图,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的一个最小点割集。
该排序子模块8066,可以被配置为将转换自同一无向图的各个有向图对应计算出的若干个最小点割集,按照最小点割集出现次数从高到低排序。
该点割集选取子模块8068,可以被配置为根据所述排序,从所述最小点割集的集合中选取出分割优化的预设数量个最小点割集。
该点割集遍历子模块8070,可以被配置为遍历所述预设数量个最小点割集。
该子图拆分子模块8072,可以被配置为分别针对遍历到的每个最小点割集,使用该最小点割集对所述有向图对应的原无向图进行拆分,每个最小点割集对应得到拆分后的子图中的最大流量子图。
该图转换子模块8074,可以被配置为将每个最小点割集对应的最大流量子图基于每对源点和汇点的组合转换为有向图,将各个最大流量子图转换得到的有向图作为遍历的对象,重新触发所述有向图遍历子模块8062进入到所述遍历有向图的步骤,以便从中取得最小点割集以及继续对最大流量子图进行拆分,直到所述最大流量子图无法继续拆分。
该集合获得子模块8076,可以被配置为每次所述最大流量子图无法继续拆分时,对应获得一组能够从实验全局图开始拆分到最后的最小点割集的集合。
该优化点割集获得子模块8078,可以被配置为上述所有遍历结束后,获取一组从若干组最小点割集的集合中选取出的、全局流量最小的优化点割集的集合。
本说明书实施例提供的装置中的所述实验可以包括应用实验和/或参数实验。所述应用实验,是将应用作为变量的实验,所述参数实验是将参数作为变量的实验。基于本说明书实施例提供的装置,可以构造出用于对应用实验和/或参数实验统筹分配流量的流量层域结构,从而提高流量利用效率。
基于本说明书实施例提供的装置构造出的流量层域结构,可以对流量进行自动分配。例如,如图9所示,所述装置还可以包括:流量获取模块812、流量分配模块814及流量发送模块816。
该流量获取模块812,可以被配置为获取流量。
该流量分配模块814,可以被配置为根据各个实验在所述流量层域结构中的分布,分配所述流量。
该流量发送模块816,可以被配置为将分配的流量打给对应的实验。
具体地,例如,所述流量发送模块816,可以包括:版本参数获取子模块8162及流量发送子模块8164。
该版本参数获取子模块8162,可以被配置为在所述实验为应用实验的情况下,获取所述应用实验对应的版本参数值。
该流量发送子模块8164,可以被配置为将分配给所述应用实验的流量在线通过服务网格打到所述版本参数值对应的应用实验上,其中,所述服务网格是不同版本的服务形成的交叉访问的网格结构,用于根据所述版本参数值进行流量的路由。
在本实施例中,通过版本参数化和服务网格化的方式,将应用实验和参数实验作为一个整体来统筹分配流量,自动部署应用,提高流量、机器利用效率,降低实验应用部署成本。
上述为本实施例的一种分配流量的装置的示意性方案。需要说明的是,该分配流量的装置的技术方案与上述的分配流量的方法的技术方案属于同一构思,分配流量的装置的技术方案未详细描述的细节内容,均可以参见上述分配流量的方法的技术方案的描述。
图10示出了根据本说明书一个实施例提供的一种计算设备1000的结构框图。该计算设备1000的部件包括但不限于存储器1010和处理器1020。处理器1020与存储器1010通过总线1030相连接,数据库1050用于保存数据。
计算设备1000还包括接入设备1040,接入设备1040使得计算设备1000能够经由一个或多个网络1060通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备1040可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备1000的上述部件以及图10中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图10所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备1000可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备1000还可以是移动式或静止式的服务器。
其中,处理器1020用于执行如下计算机可执行指令:
获取实验全局图,所述实验全局图中:实验为节点、实验间关系为边、实验所需流量确定节点的权重;
将所述实验全局图转换为有向图,所述有向图中有向边的权重根据对应节点的权重确定;
按照预设的求优化点割集的目标,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的优化点割集,其中,所述求优化点割集的目标是所述优化点割集占据的流量与其拆分出的子图占据的流量达到预设优化要求;
利用所述优化点割集拆分所述实验全局图,得到若干个子图;
利用所述优化点割集以及所述若干个子图,构造出用于分配流量的流量层域结构;
其中,所述流量层域结构包括重叠域及独立域,所述重叠域包括一个或多个子图层,优化点割集被放入独立域,每个子图被放入重叠域的一个子图层内,重叠域的各个子图层之间复用流量,所述独立域相对于重叠域单独使用流量。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的分配流量的方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述分配流量的方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:
获取实验全局图,所述实验全局图中:实验为节点、实验间关系为边、实验所需流量确定节点的权重;
将所述实验全局图转换为有向图,所述有向图中有向边的权重根据对应节点的权重确定;
按照预设的求优化点割集的目标,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的优化点割集,其中,所述求优化点割集的目标是所述优化点割集占据的流量与其拆分出的子图占据的流量达到预设优化要求;
利用所述优化点割集拆分所述实验全局图,得到若干个子图;
利用所述优化点割集以及所述若干个子图,构造出用于分配流量的流量层域结构;
其中,所述流量层域结构包括重叠域及独立域,所述重叠域包括一个或多个子图层,优化点割集被放入独立域,每个子图被放入重叠域的一个子图层内,重叠域的各个子图层之间复用流量,所述独立域相对于重叠域单独使用流量。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的分配流量的方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述分配流量的方法的技术方案的描述。
另外,本说明书实施例还提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行本说明书任意实施例所述分配流量的方法的步骤。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (13)
1.一种分配流量的方法,包括:
获取实验全局图,所述实验全局图中:实验为节点、实验间关系为边、实验所需流量确定节点的权重;
将所述实验全局图转换为有向图,所述有向图中有向边的权重根据对应节点的权重确定;
按照预设的求优化点割集的目标,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的优化点割集,其中,所述求优化点割集的目标是所述优化点割集占据的流量与其拆分出的子图占据的流量达到预设优化要求;
利用所述优化点割集拆分所述实验全局图,得到若干个子图;
利用所述优化点割集以及所述若干个子图,构造出用于分配流量的流量层域结构;
其中,所述流量层域结构包括重叠域及独立域,所述重叠域包括一个或多个子图层,优化点割集被放入独立域,每个子图被放入重叠域的一个子图层内,重叠域的各个子图层之间复用流量,所述独立域相对于重叠域单独使用流量。
2.根据权利要求1所述的方法,所述获取实验全局图,包括:
获取多个实验各自所需流量信息以及实验参数;
根据所述实验所需流量确定实验的权重,以及,根据所述实验参数确定实验间关系;
将所述实验作为节点,实验间关系作为边,构造实验全局图。
3.根据权利要求1所述的方法,所述实验全局图中非源点且非汇点的任一节点,在所述有向图中对应拆分为两点,该两点之间的有向边的权重是利用该任一节点的权重,基于预设的权重计算规则计算得到的;
所述预设的权重计算规则包括:在对应节点的权重基础上增加边权重基础值、在对应节点的权重基础上加倍、在对应节点的权重基础上减少该节点在实验全局图中的度确定的权重减少量、和/或,在对应节点的权重基础上以调整分割均匀度为目标增加权重,所述在对应节点的权重基础上以调整分割均匀度为目标增加权重,包括:在对应节点的权重基础上增加所述节点与源点的距离和与汇点的距离进行加权求和得到的增加权重量。
4.根据权利要求3所述的方法,所述在对应节点的权重基础上增加边权重基础值,包括:在对应节点的权重基础上增加第一非负常数调节系数确定的权重基础值;
所述在对应节点的权重基础上加倍,包括:利用第二非负常数调节系数对节点的权重加倍;
所述权重减少量等于第三非负常数调节系数乘以所述节点在实验全局图中的度得到的乘积。
5.根据权利要求1所述的方法,所述求优化点割集的目标包括:优化点割集在实验全局图中拆分出的最大流量子图与优化点割集的流量和最小。
6.根据权利要求5所述的方法,所述将所述实验全局图转换为有向图,包括:
遍历所述实验全局图中的所有点,得到若干对源点和汇点的组合;
基于每对源点和汇点的组合转换所述实验全局图,得到若干个有向图;
所述按照预设的求优化点割集的目标,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的优化点割集,包括:
遍历所述有向图;
针对遍历到的每一个有向图,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的一个最小点割集;
将转换自同一无向图的各个有向图对应计算出的若干个最小点割集,按照最小点割集出现次数从高到低排序;
根据所述排序,从所述最小点割集的集合中选取出分割优化的预设数量个最小点割集;
遍历所述预设数量个最小点割集;
分别针对遍历到的每个最小点割集,使用该最小点割集对所述有向图对应的原无向图进行拆分,每个最小点割集对应得到拆分后的子图中的最大流量子图;
将每个最小点割集对应的最大流量子图基于每对源点和汇点的组合转换为有向图;
将各个最大流量子图转换得到的有向图作为遍历的对象,重新进入到所述遍历有向图的步骤,以便从中取得最小点割集以及继续对最大流量子图进行拆分,直到所述最大流量子图无法继续拆分;
每次所述最大流量子图无法继续拆分时,对应获得一组能够从实验全局图开始拆分到最后的最小点割集的集合;
遍历结束后,获取一组从若干组最小点割集的集合中选取出的、全局流量最小的优化点割集的集合。
7.根据权利要求1所述的方法,所述实验为应用实验和/或参数实验,所述应用实验,是将应用作为变量的实验,所述参数实验是将参数作为变量的实验。
8.根据权利要求1或7所述的方法,还包括:
获取流量;
根据各个实验在所述流量层域结构中的分布,分配所述流量;
将分配的流量打给对应的实验。
9.根据权利要求8所述的方法,所述将分配的流量打给对应的实验,包括:
在所述实验为应用实验的情况下,获取所述应用实验对应的版本参数值;
将分配给所述应用实验的流量在线通过服务网格打到所述版本参数值对应的应用实验上,其中,所述服务网格是不同版本的服务形成的交叉访问的网格结构,用于根据所述版本参数值进行流量的路由。
10.根据权利要求1所述的方法,所述流量层域结构包括若干个连通层,每个连通层中包括一个所述独立域及其对应的重叠域,所述实验全局图中每个连通图的优化点割集被放入一个连通层的独立域,每个子图根据连通关系被放入对应重叠域的一个子图层内,各个连通层之间复用流量。
11.一种分配流量的装置,包括:
全局图获取模块,被配置为获取实验全局图,所述实验全局图中:实验为节点、实验间关系为边、实验所需流量确定节点的权重;
有向图转换模块,被配置为将所述实验全局图转换为有向图,所述有向图中有向边的权重根据对应节点的权重确定;
最小割计算模块,被配置为按照预设的求优化点割集的目标,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的优化点割集,其中,所述求优化点割集的目标是所述优化点割集占据的流量与其拆分出的子图占据的流量达到预设优化要求;
图拆分模块,被配置为利用所述优化点割集拆分所述实验全局图,得到若干个子图;
层域构造模块,被配置为利用所述优化点割集以及所述若干个子图,构造出用于分配流量的流量层域结构;
其中,所述流量层域结构包括重叠域及独立域,所述重叠域包括一个或多个子图层,优化点割集被放入独立域,每个子图被放入重叠域的一个子图层内,重叠域的各个子图层之间复用流量,所述独立域相对于重叠域单独使用流量。
12.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
获取实验全局图,所述实验全局图中:实验为节点、实验间关系为边、实验所需流量确定节点的权重;
将所述实验全局图转换为有向图,所述有向图中有向边的权重根据对应节点的权重确定;
按照预设的求优化点割集的目标,利用所述有向图中有向边的权重,基于最小割算法计算出所述有向图的优化点割集,其中,所述求优化点割集的目标是所述优化点割集占据的流量与其拆分出的子图占据的流量达到预设优化要求;
利用所述优化点割集拆分所述实验全局图,得到若干个子图;
利用所述优化点割集以及所述若干个子图,构造出用于分配流量的流量层域结构;
其中,所述流量层域结构包括重叠域及独立域,所述重叠域包括一个或多个子图层,优化点割集被放入独立域,每个子图被放入重叠域的一个子图层内,重叠域的各个子图层之间复用流量,所述独立域相对于重叠域单独使用流量。
13.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至10任意一项所述分配流量的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110962322.4A CN113852571B (zh) | 2021-08-20 | 2021-08-20 | 分配流量的方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110962322.4A CN113852571B (zh) | 2021-08-20 | 2021-08-20 | 分配流量的方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113852571A CN113852571A (zh) | 2021-12-28 |
CN113852571B true CN113852571B (zh) | 2023-11-28 |
Family
ID=78975796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110962322.4A Active CN113852571B (zh) | 2021-08-20 | 2021-08-20 | 分配流量的方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113852571B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102341781A (zh) * | 2009-03-06 | 2012-02-01 | 微软公司 | 软件测试台生成 |
CN102541723A (zh) * | 2010-12-08 | 2012-07-04 | 上海杉达学院 | 用于软件测试的自动化测试装置 |
CN104239126A (zh) * | 2013-06-19 | 2014-12-24 | 华为技术有限公司 | 一种有向图的最小割获取方法及设备 |
CN104281611A (zh) * | 2013-07-08 | 2015-01-14 | 阿里巴巴集团控股有限公司 | 网站测试系统中的用户流量分配方法及装置 |
CN107317767A (zh) * | 2017-05-23 | 2017-11-03 | 广东科学技术职业学院 | 基于反蚁群算法的网络快速流量优化方法 |
CN108989148A (zh) * | 2018-07-17 | 2018-12-11 | 浙江大学 | 一种传输时延最小化的中继多路径流量分配方法 |
CN110046296A (zh) * | 2019-03-12 | 2019-07-23 | 平安城市建设科技(深圳)有限公司 | 实验数据的处理方法、装置、设备及存储介质 |
CN110058945A (zh) * | 2019-04-22 | 2019-07-26 | 河南工业大学 | 基于割点分割机制的大规模图并行计算最大流的加速算法 |
CN110209566A (zh) * | 2018-04-08 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种对软件的测试方法及装置 |
CN111078560A (zh) * | 2019-12-18 | 2020-04-28 | 北京嘀嘀无限科技发展有限公司 | 基于流量剪枝的测试方法、装置、电子设备及存储介质 |
CN111352872A (zh) * | 2020-02-20 | 2020-06-30 | 北京字节跳动网络技术有限公司 | 执行引擎、数据处理方法、装置、电子设备和介质 |
CN111681049A (zh) * | 2020-06-04 | 2020-09-18 | 广州视源电子科技股份有限公司 | 用户行为的处理方法、存储介质及相关设备 |
CN113176992A (zh) * | 2021-04-08 | 2021-07-27 | 深圳依时货拉拉科技有限公司 | A/b实验分流方法、装置、设备和计算机可读存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8429616B2 (en) * | 2010-03-19 | 2013-04-23 | Ebay Inc. | Orthogonal experimentation in a computing environment |
US8533139B2 (en) * | 2011-09-06 | 2013-09-10 | Czech Technical University In Prague, Faculty Of Electrical Engineering | Optimizing computation of minimum cut in graphs with grid topology |
US8983816B2 (en) * | 2012-06-18 | 2015-03-17 | International Business Machines Corporation | Efficient evaluation of network robustness with a graph |
US9489639B2 (en) * | 2013-11-13 | 2016-11-08 | Microsoft Technology Licensing, Llc | Memory facilitation using directed acyclic graphs |
US20160253311A1 (en) * | 2015-02-27 | 2016-09-01 | Linkedln Corporation | Most impactful experiments |
US20190370407A1 (en) * | 2018-05-30 | 2019-12-05 | Ab Initio Technology Llc | Systems and methods for dataflow graph optimization |
US11108875B2 (en) * | 2018-10-17 | 2021-08-31 | Optimizely, Inc. | Server-side configuration variables in feature testing |
-
2021
- 2021-08-20 CN CN202110962322.4A patent/CN113852571B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102341781A (zh) * | 2009-03-06 | 2012-02-01 | 微软公司 | 软件测试台生成 |
CN102541723A (zh) * | 2010-12-08 | 2012-07-04 | 上海杉达学院 | 用于软件测试的自动化测试装置 |
CN104239126A (zh) * | 2013-06-19 | 2014-12-24 | 华为技术有限公司 | 一种有向图的最小割获取方法及设备 |
CN104281611A (zh) * | 2013-07-08 | 2015-01-14 | 阿里巴巴集团控股有限公司 | 网站测试系统中的用户流量分配方法及装置 |
CN107317767A (zh) * | 2017-05-23 | 2017-11-03 | 广东科学技术职业学院 | 基于反蚁群算法的网络快速流量优化方法 |
CN110209566A (zh) * | 2018-04-08 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种对软件的测试方法及装置 |
CN108989148A (zh) * | 2018-07-17 | 2018-12-11 | 浙江大学 | 一种传输时延最小化的中继多路径流量分配方法 |
CN110046296A (zh) * | 2019-03-12 | 2019-07-23 | 平安城市建设科技(深圳)有限公司 | 实验数据的处理方法、装置、设备及存储介质 |
CN110058945A (zh) * | 2019-04-22 | 2019-07-26 | 河南工业大学 | 基于割点分割机制的大规模图并行计算最大流的加速算法 |
CN111078560A (zh) * | 2019-12-18 | 2020-04-28 | 北京嘀嘀无限科技发展有限公司 | 基于流量剪枝的测试方法、装置、电子设备及存储介质 |
CN111352872A (zh) * | 2020-02-20 | 2020-06-30 | 北京字节跳动网络技术有限公司 | 执行引擎、数据处理方法、装置、电子设备和介质 |
CN111681049A (zh) * | 2020-06-04 | 2020-09-18 | 广州视源电子科技股份有限公司 | 用户行为的处理方法、存储介质及相关设备 |
CN113176992A (zh) * | 2021-04-08 | 2021-07-27 | 深圳依时货拉拉科技有限公司 | A/b实验分流方法、装置、设备和计算机可读存储介质 |
Non-Patent Citations (4)
Title |
---|
Toward Automatic Mobile Application Fingerprint Extraction from Non-encrypted HTTP Traffic;Yafei Sang et al.;《2020 IEEE Intl Conf on Parallel & Distributed Processing with Applications, Big Data & Cloud Computing, Sustainable Computing & Communications, Social Computing & Networking (ISPA/BDCloud/SocialCom/SustainCom)》;全文 * |
基于栈的网络最大流算法;厍向阳;《计算机工程与应用》;全文 * |
支持在线测试的推荐引擎辅助平台的设计与实现;朱思扬;《中国优秀硕士学位论文全文数据库 信息科技辑》;全文 * |
船舶移动网络动态流量数据资源分配算法;王翔;《舰船科学技术》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113852571A (zh) | 2021-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108981739B (zh) | 一种路径规划方法、装置、服务器及存储介质 | |
KR102008242B1 (ko) | 클라우드-에지 토폴로지 | |
WO2017045472A1 (zh) | 资源预测方法、系统和容量管理装 | |
CN110245802A (zh) | 基于改进梯度提升决策树的卷烟空头率预测方法及系统 | |
da Silva et al. | Genetic programming for QoS-aware web service composition and selection | |
CN108540988B (zh) | 一种场景划分方法及装置 | |
US8738559B2 (en) | Graph partitioning with natural cuts | |
CN108388564B (zh) | 查询处理方法、装置及其设备 | |
CN110298687B (zh) | 一种区域吸引力评估方法及设备 | |
CN111898221A (zh) | 选址方法、装置及计算机可读存储介质 | |
CN111400555A (zh) | 图数据查询任务处理方法、装置、计算机设备和存储介质 | |
CN113569369B (zh) | 路网拓扑图的划分方法、装置、介质及设备 | |
CN111159577A (zh) | 一种社群划分方法、装置、存储介质及电子装置 | |
CN113615137A (zh) | Cdn优化平台 | |
CN113852571B (zh) | 分配流量的方法以及装置 | |
Mendula et al. | Energy-aware edge federated learning for enhanced reliability and sustainability | |
WO2022052973A1 (zh) | 一种模型处理方法、装置、设备及计算机可读存储介质 | |
CN114298391A (zh) | 配送路线的确定方法、装置及设备 | |
CN111612198B (zh) | 预测拼单成功率的方法、装置和电子设备 | |
CN102968593B (zh) | 用于多租户环境下定位应用程序的隔离点的方法和系统 | |
Pacheco et al. | A stepped tabu search method for the clique partitioning problem | |
Dang et al. | Hybrid Genetic Algorithms to Determine 2-Optimality Consensus for a Collective of Ordered Partitions | |
CN110209829A (zh) | 信息处理方法和装置 | |
Pacheco Bonrostro et al. | A stepped tabu search method for the clique partitioning problem | |
CN114741383A (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 |