CN117478610A - 全局流量控制方法、装置、电子设备及存储介质 - Google Patents
全局流量控制方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117478610A CN117478610A CN202311813702.7A CN202311813702A CN117478610A CN 117478610 A CN117478610 A CN 117478610A CN 202311813702 A CN202311813702 A CN 202311813702A CN 117478610 A CN117478610 A CN 117478610A
- Authority
- CN
- China
- Prior art keywords
- service
- speed
- flow
- limited
- limiting
- 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
- 238000000034 method Methods 0.000 title claims abstract description 95
- 230000008569 process Effects 0.000 claims abstract description 47
- 238000011144 upstream manufacturing Methods 0.000 claims description 16
- 238000011084 recovery Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- -1 service 11 Chemical compound 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
Abstract
本申请提供一种全局流量控制方法、装置、电子设备及存储介质,涉及计算机技术领域。该方法包括:接收业务流程中各服务发送的当前负载值;基于当前负载值,若存在满足限速条件的目标服务,则根据目标服务对应的当前负载值确定目标服务的限速策略;其中,目标服务为业务流程中的任一服务;基于限速策略对目标服务进行流量限速。装置用于执行上述方法。本申请实施例根据业务流程中各服务的负载值判断是否需要对该服务执行限速策略,通过限速策略实现对集群中的多个服务进行统一限速,提高了集群资源利用率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种全局流量控制方法、装置、电子设备及存储介质。
背景技术
微服务是SOA架构下的一种变体,提倡将单一应用程序划分成一组小的服务,服务之间相互协调配合,对用户提供服务。通常将微服务以集群形式进行架构。但集群资源有限,当流量高峰期和平均流量差距较大时,现有技术通常是对集群入口或者集群中某个服务进行限速。在限速之后,就像一个木桶一样,整个集群的能力将由处理请求最慢的服务所决定。虽然这个服务承担的流量达到极限,无法再处理请求,但此时集群的整体资源占用情况可能还没到达极限,因此,使得集群的资源利用率较低。
发明内容
本申请实施例的目的在于提供一种全局流量控制方法、装置、电子设备及存储介质,用以对集群中的多个服务进行统一限速,避免大量的流量集中在某一个服务中,提高集群资源利用率。
第一方面,本申请实施例提供一种全局流量控制方法,该方法包括:接收业务流程中各服务发送的当前负载值;基于当前负载值,若存在满足限速条件的目标服务,则根据目标服务对应的当前负载值确定目标服务的限速策略;其中,目标服务为业务流程中的任一服务;基于限速策略对目标服务进行流量限速。
本申请实施例中,由于各服务的当前负载值体现了服务所在集群的资源情况,因此,根据各服务的当前负载值确定对业务流程中的哪些服务执行限速策略,使得能够通过限速策略实现放慢流量在业务流程中部分服务的流速,避免出现大量的流量集中在某一个服务中而降低集群能力的现象,从而提高了集群资源利用率。
在一些实施例中,根据目标服务对应的当前负载值确定目标服务的限速策略,包括:根据目标服务对应的当前负载值确定待限速服务的个数;其中,待限速服务为目标服务的上游服务;基于待限速服务的个数确定限速流量;根据待限速服务的个数和限速流量确定目标服务的限速策略。
本申请实施例通过目标服务的当前负载值确定待限速服务的个数以及根据待限速服务的个数确定限速流量,从而确定目标服务的限速策略。使得针对不同当前负载值的目标服务来说,其限速策略是不相同的,因此能根据不同服务的不同情况做出不同的决策。由于能根据目标服务的具体情况进行个性化处理,进一步提高了集群资源利用率。
在一些实施例中,基于待限速服务的个数确定限速流量,包括:基于业务流程的执行顺序和待限速服务的个数确定待限速服务中的第一个待限速服务;获取第一个待限速服务的流量;根据第一个待限速服务的流量和待限速服务的个数确定限速流量。
本申请实施例通过基于第一个待限速服务的流量以及待限速服务的个数确定限速流量。在这个过程中,由于不同的目标服务对应的待限速服务中的第一个待限速服务可能是不相同的,使得针对不同的目标服务来说,其限速流量也是不相同的。因此,针对不同的目标服务来说,能根据目标服务的具体情况进行个性化处理,进一步提高了集群资源利用率。
在一些实施例中,基于限速策略对目标服务进行流量限速,包括:基于业务流程的执行顺序确定每个待限速服务的限速顺序;根据限速顺序和限速流量依次对每个待限速服务进行流量限速;将经限速后的流量放行给目标服务。
本申请实施例通过业务流程的执行顺序对待限速服务进行依次限速,在这个过程中,先对第一个待限速服务进行限速,将限速后的流量放行给下一个待限速服务,对下一个待限速服务进行限速,然后再将限速后的流量放行给再下一个待限速服务,直至达到目标服务,使得流量能平缓的流过每一个待限速服务,而到达目标服务的流量是经过多次限速后的流量,不至于造成目标服务的堵塞,以实现对目标服务限速的目的,提高了集群资源利用率。
在一些实施例中,在基于限速策略对目标服务进行流量限速之后,该方法还包括:获取每个待限速服务的负载值;若存在待限速服务的负载值小于第一预设负载阈值,则基于限速流量和待限速服务的个数确定放行流量;基于放行流量对每个待限速服务进行流量恢复。
本申请实施例在根据限速策略对目标服务的流量进行限速后,检测到任一待限速服务的负载值小于第一预设负载阈值时,对每一个待限速服务的限速流量进行放行,从而恢复每一个待限速服务的流量。使得集群资源不会出现空闲的状态,提高了集群资源利用率。
在一些实施例中,在根据目标服务对应的当前负载值确定待限速服务的个数之后,该方法还包括:若待限速服务的个数为目标服务的全部上游服务,则增加目标服务的服务子节点数。
本申请实施例中,若目标服务的限速策略中的待限速服务的个数是目标服务的全部上游服务,表明目标服务为业务流程中较重要的服务,所要承担的业务压力较大,因此增加目标服务的服务子节点数,以降低目标服务的压力,提高集群资源利用率。
在一些实施例中,接收业务流程中各服务发送的当前负载值,包括:接收每个服务的服务子节点的当前负载值;基于每个服务的服务子节点的当前负载值计算每个服务的负载平均值,将负载平均值作为每个服务的当前负载值。
本申请实施例中,业务流程中的服务通常是多节点部署,因此为了得到服务更准确、全面和客观的当前负载值,根据每个服务的服务子节点的当前负载值计算每个服务的负载平均值作为每个服务的当前负载值。根据平均负载来决定如何分配资源或调整业务流程,以确保整个系统的稳定性和效率,从而进一步提高集群资源利用率。
第二方面,本申请实施例提供一种全局流量控制装置,该装置包括:接收模块,用于接收业务流程中各服务发送的当前负载值;确定模块,用于基于当前负载值,若存在满足限速条件的目标服务,则根据目标服务对应的当前负载值确定目标服务的限速策略;其中,目标服务为业务流程中的任一服务;限速模块,用于基于限速策略对目标服务进行流量限速。
第三方面,本申请实施例提供一种电子设备,包括:处理器、存储器、存储介质和总线,其中,所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的方法步骤。
第四方面,本申请实施例提供一种非暂态计算机可读存储介质,包括:所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的方法步骤。
本申请的有益效果有:
本申请实施例通过判断业务流程中各服务的当前负载值是否满足限速条件,对满足限速条件的目标服务进行流量限速。在这个过程中,由于各服务的当前负载值体现了服务所在集群的资源情况,因此,根据各服务的当前负载值确定对业务流程中的哪些服务执行限速策略,使得能够通过限速策略实现放慢流量在业务流程中部分服务的流速,避免出现大量的流量集中在某一个服务中而降低集群能力的现象,从而提高了集群资源利用率。并且,在对目标服务进行流量限速时,是根据不同服务的不同情况做出不同的决策,个性化处理的方式进一步提高了集群资源利用率。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种全局流量控制方法的流程图;
图2为本申请实施例提供的一种全局流量控制装置结构示意图;
图3为本申请实施例提供的电子设备结构示意图。
具体实施方式
下面将结合附图对本申请技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
需要说明的是,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。
在本申请实施例的描述中,技术术语“第一”“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系。在本申请实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
在本申请实施例的描述中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
微服务是SOA架构下的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调配合,对用户提供服务。每个服务运行在独立的进程中,服务与服务间采用轻量级的通信机制进行通信(通常是HTTP)。每个服务都是具体业务的实现,能够独立部署到生产环境。对每个服务,可以根据业务属性选择不同的编程语言和工具进行构建。
令牌桶算法是网络流量整形和速率限制中常用的一种算法,可以控制发送到目标服务的流量,并允许突发数据的发送。原理是,系统会以一个恒定的数据往桶里放入令牌,如果请求需要被处理,则需要先从桶里获取一个令牌,当桶里没有令牌可取时,则拒绝服务。
漏桶算法是网络流量整形和速率限制中常用的一种算法,可以控制数据发送到目标服务的速率,平滑网络上的突发流量,以便为目标服务提供一个稳定的流量。
将微服务部署在集群中,但集群资源是有限的,当流量高峰期和平均流量差距较大时,现有技术(例如,令牌桶算法、漏桶算法)通常是对集群中某个服务进行限速。服务会因为不同的场景而被限速,有的服务是因为最常被访问,有的服务是因为处理请求较慢。在限速之后,就像一个木桶一样,整个集群的能力将由处理请求最慢的服务所决定。在这个服务承担的流量达到极限,无法再处理请求时,直接响应失败,而此时,集群的整体资源占用情况可能还没到达极限,这无疑拉低了集群的整体能力。同时由于某个服务资源耗尽无法再对外提供服务时,系统会处于长时间的等待状态,导致用户体验差。
因此,本申请实施例的目的在于提供一种全局流量控制方法,用以解决现有的流量限速方法对集群资源利用不够充分的问题。该方法不是只针对某一个服务进行限速,而是对业务流程中的多个服务进行统一限速,以此放慢流量在业务流程中多个服务的流速,避免大量的流量集中在某一个服务中。并且,本申请实施例在必要时,增加某个服务的服务子节点数,以降低某个服务的压力。
具体的,本申请实施例提供的一种全局流量控制方法涉及决策端和执行端。其中,决策端是一个采用单节点部署方式的微服务。执行端泛指集群中各个业务流程中的各个服务。
决策端在功能上分为业务流程配置,创建业务流程队列,流量判定三个模块。针对业务流程配置,开发人员需要在决策端预先基于配置界面配置该集群中的各个业务流程以及各个业务流程包括的服务,并为各个业务流程的各个服务绑定服务名称。配置完成后,保存在数据库中。在流量限速开启时,决策端为各个业务流程在内存中创建一个长度与业务流程包括的服务数相等的队列,并为队列的每一个值绑定对应的服务名称,以及为队列赋初始值0。执行端按固定周期向集群中的决策端发送负载值,或者决策端按固定周期获取执行端的负载值,以使决策端获得执行端的负载值,并将负载值写入对应队列的对应位置上。在进行流量判定时,决策端根据各个业务流程对应队列中记载的各个服务的负载值进行决策,从而根据决策对执行端进行流量限速。
需要说明的是,队列中记载的负载值的取值范围为[0,100],数值越大,表明该业务流程的该服务的压力越大。
图1为本申请实施例提供的一种全局流量控制方法的流程图,该方法运行在决策端,决策端部署在服务器中,服务器可以为应用服务器,也可以为web服务器。如图1所述,该方法包括:
步骤101,服务器接收业务流程中各服务发送的当前负载值。
在具体实施过程中,业务流程是指为达成业务目标而设定的一系列标准化的步骤。示例性的,用户向银行申请一笔贷款,针对贷款业务的业务流程包括贷款审批、抵押评估、合同签订等多个动作。
服务器接收业务流程中各服务发送的当前负载值,并将每个服务的当前负载值写入决策端创建的对应业务流程的队列中。其中,负载值为服务所在的物理机的CPU、内存、硬盘、网络等硬件资源的使用情况。
步骤102,服务器基于当前负载值,若存在满足限速条件的目标服务,服务器则根据目标服务对应的当前负载值确定目标服务的限速策略;其中,目标服务为业务流程中的任一服务。
在具体实施过程中,限速条件用于表征各服务的当前负载值是否超过预设负载阈值,该预设负载阈值可根据实际情况进行设定。服务器根据队列中存储的当前负载值与预设负载阈值的关系判断是否存在满足限速条件的目标服务,若存在,则根据目标服务的当前负载值确定目标服务的限速策略。
示例性的,预设负载阈值为40,则当服务的当前负载值大于或等于40时,则该服务满足限速条件,将该服务作为目标服务,并根据其当前负载值确定限速策略。
步骤103,服务器基于限速策略对目标服务进行流量限速。
在具体实施过程中,服务器确定目标服务的限速策略后,便可基于限速策略对目标服务进行流量限速。
本申请实施例中,由于各服务的当前负载值体现了服务所在集群的资源情况,因此,根据各服务的当前负载值确定对业务流程中的哪些服务执行限速策略,使得能够通过限速策略实现放慢流量在业务流程中部分服务的流速,避免出现大量的流量集中在某一个服务中而降低集群能力的现象,从而提高了集群资源利用率。
在一些实施例中,服务器根据目标服务对应的当前负载值确定目标服务的限速策略,包括:根据目标服务对应的当前负载值确定待限速服务的个数;其中,待限速服务为目标服务的上游服务;基于待限速服务的个数确定限速流量;根据待限速服务的个数和限速流量确定目标服务的限速策略。
在具体实施过程中,上游服务指在执行业务流程时,先于目标服务执行的服务。示例性的,业务流程1包括服务1、服务2、服务3、服务4和服务5,其中,每个服务的数字代表其执行顺序。设目标服务是服务4,则服务1、服务2和服务3为服务4的上游服务。
流量是指单位时间内到达服务的请求数量,限速流量是指单位时间内被暂停的请求数量。示例性的,单位时间内到达服务的请求数量为1000个请求,此时暂停200个请求,则该200个请求为限速流量。
需要说明的是,服务器根据目标服务对应的当前负载值确定目标服务的限速策略时,是基于目标服务的当前负载值与预设负载阈值的关系确定目标服务的限速策略的。而预设负载阈值可以是一个值,也可以包括多个值。当存在多个预设负载阈值时,将多个预设负载阈值中的最小阈值作为第一预设负载阈值,然后根据预设负载阈值的大小关系从小到大依次确定第二预设负载阈值、第三预设负载阈值等。从而根据不同的预设负载阈值确定不同的待限速服务的个数,进而分别确定不同的限速策略。
示例性的:
设目标服务的当前负载为F,0<F<=100,Y表示待限速服务的个数,其中,
F<= 第一预设负载阈值时:不限速;
第一预设负载阈值<F<=第二预设负载阈值时:Y=(F–第一预设负载阈值)/5,其中,Y向上取整;
第二预设负载阈值<F时:Y取目标服务的所有上游服务。
其中,第一预设负载阈值可取值30、40或50等,第二预设阈值可取值85或90等,关于第一预设负载阈值和第二预设负载阈值的取值可根据实际情况进行设定,本申请对此不做具体限定。
另外,针对待限速服务的个数的计算方法可根据实际情况进行适应性调整,并不局限于本申请提出的计算方法。例如,将负载值划分为多个区间,针对每一个区间,其对应设置一个固定的待限速服务的个数。即,目标服务的当前负载值落入哪一个负载区间,则其待限速服务的个数为该负载区间对应的固定值。
应当知道的是,由于待限速服务的个数与目标服务的当前负载值有关,因此待限速服务的个数可以是0个,可以是1个,也可以是多个。当待限速服务为0个时,表明目标服务的负载较低,不需要进行限速。当待限速服务为1个时,其为最接近目标服务的上游服务。示例性的,当目标服务为服务4,且待限速服务只有1个,则服务3为服务4的待限速服务;当待限速服务有2个,则服务2和服务3为服务4的待限速服务。
在确定待限速服务的个数后,根据待限速服务的个数确定限速流量。最后基于待限速服务的个数和限速流量确定目标服务的限速策略。限速流量的确定请参见下述实施例,此处不在赘述。
本申请实施例通过目标服务的当前负载值确定待限速服务的个数以及根据待限速服务的个数确定限速流量,从而确定目标服务的限速策略。使得针对不同当前负载值的目标服务来说,其限速策略是不相同的,因此能根据不同服务的不同情况做出不同的决策。由于能根据目标服务的具体情况进行个性化处理,进一步提高了集群资源利用率。
在一些实施例中,服务器基于待限速服务的个数确定限速流量,包括:基于业务流程的执行顺序和待限速服务的个数确定待限速服务中的第一个待限速服务;获取第一个待限速服务的流量;根据第一个待限速服务的流量和待限速服务的个数确定限速流量。
在具体实施过程中,服务器基于目标服务的当前负载值确定了待限速服务的个数后,便可基于业务流程的执行顺序和待限速服务的个数确定第一个待限速服务,从而确定从业务流程的哪一个服务开始限速。具体限速多少流量根据第一待限速服务的流量和待限速服务的个数来确定,使得流量平缓的到达目标服务,避免出现流量在服务中堵塞的情况。
具体的,根据上述实施例,待限速服务的个数为Y,设第一个待限速服务的单位时间的流量为T,设限速流量为S,则限速流量S=T/(Y + 1)。示例性的,第一个待限速服务的单位时间的流量为1000个请求,待限速服务的个数为4,则限速流量S=T/(Y + 1)=1000/(4 +1)=200,此时在第一个待限速服务中暂停200个请求。
应当知道的是,在具体实施过程中,限速流量还可根据实际情况进行具体设定,本申请对此不做具体限定。
本申请实施例通过基于第一个待限速服务的流量以及待限速服务的个数确定限速流量。在这个过程中,由于不同的目标服务对应的待限速服务中的第一个待限速服务可能是不相同的,使得针对不同的目标服务来说,其限速流量也是不相同的。因此,针对不同的目标服务来说,能根据目标服务的具体情况进行个性化处理,进一步提高了集群资源利用率。
在一些实施例中,服务器基于限速策略对目标服务进行流量限速,包括:基于业务流程的执行顺序确定每个待限速服务的限速顺序;根据限速顺序和限速流量依次对每个待限速服务进行流量限速;将经限速后的流量放行给目标服务。
在具体实施过程中,限速顺序是指对待限速服务进行限速的先后顺序,限速顺序可等同于待限速服务的执行顺序。服务器在根据限速策略对目标服务进行流量限速时,具体基于业务流程的执行顺序确定待限速服务的限速顺序,确定限速顺序后,便基于限速顺序和限速流量对每个待限速服务进行流量限速,最后将经限速后的流量放行给目标服务。
其中,待限速服务的个数和限速流量的确定可参见上述实施例,此处不在赘述。
示例性的,设第一预设负载阈值为40,第二预设负载阈值为85。
业务流程1包括服务11、服务12、服务13、服务14、服务15和服务16,其中,服务16为目标服务,服务16的负载值为80(大于第一预设负载阈值且小于第二预设负载阈值),则待限速服务个数为(80-40)/5=4个,则待限速服务且限速顺序为服务12、服务13、服务14和服务15。其中,服务12为第一个待限速服务,假设服务12单位时间的流量为1000个请求;则限速流量为1000/(4 + 1)=200。则服务12暂停 200个请求,放行800个请求到服务13;服务13暂停 200个请求,放行600个请求到服务14;服务14暂停 200个请求,放行400个请求到服务15;服务15暂停 200个请求,放行200个请求到目标服务(服务16)。
又例如:业务流程2包括服务21、服务22、服务23、服务24和服务25,其中,服务24为目标服务,服务24的负载值为90(大于第二预设阈值),则待限速服务的个数为服务24的全部上游服务,即服务21、服务22、服务23,且其限速顺序为服务21、服务22、服务23。假设服务21的单位时间的流量为1000个请求;则限速流量为1000/(3 + 1)=250。则服务21暂停250个请求,放行750个请求到服务22;服务22暂停250个请求,放行500个请求到服务23;服务23暂停250个请求,放行250个请求到目标服务(服务24)。
本申请实施例通过业务流程的执行顺序对待限速服务进行依次限速,在这个过程中,先对第一个待限速服务进行限速,将限速后的流量放行给下一个待限速服务,对下一个待限速服务进行限速,然后再将限速后的流量放行给再下一个待限速服务,直至达到目标服务,使得流量能平缓的流过每一个待限速服务,而到达目标服务的流量是经过多次限速后的流量,不至于造成目标服务的堵塞,以实现对目标服务限速的目的,提高了集群资源利用率。
在一些实施例中,服务器在基于限速策略对目标服务进行流量限速之后,该方法还包括:获取每个待限速服务的负载值;若存在待限速服务的负载值小于第一预设负载阈值,则基于限速流量和待限速服务的个数确定放行流量;基于放行流量对每个待限速服务进行流量恢复。
在具体实施过程中,根据上述实施例可知,当服务的负载值小于第一预设负载阈值时,不进行限速。其中,第一预设负载阈值为预先设定的值,可根据实际情况进行设定。具体的,可设置为30、40、50等。因此,为了保证被限速的流量能够正常执行,当执行流量限速后,服务器检测到某个时间周期中任一待限速服务的负载值低于第一预设负载阈值时,对被限速的流量进行放行。确定放行流量后,便可基于放行流量对每个待限速服务进行流量恢复。
具体的,设放行流量为Z,放行流量与限速流量之间的关系为Z=S/(Y + 1)。需要说明的是,在具体实施过程中,放行流量还可根据实际情况进行具体设定,本申请对此不做具体限定。
示例性的,设第一预设阈值为40,针对包括服务11、服务12、服务13、服务14、服务15和服务16的业务流程1。由上述实施例可知,目标服务为16,待限速服务且限速顺序为服务12、服务13、服务14和服务15。在进行流量限速时,对每个待限速服务的限速流量为200。
在执行流量限速后的某一个时间周期检测到服务13的负载值低于第一预设负载阈值时,对每个待限速服务的限速流量进行流量放行。其中,由于限速流量为200,待限速服务的个数为4,则放行流量Z= S/(Y + 1)=200/(4 + 1)=40,则针对每一个待限速服务,放行限速流量中的40个请求。即,将服务12暂停的200个请求,放行40个请求到服务13,针对服务13暂停的200个请求,放行40个请求到服务14,针对服务14暂停的200个请求,放行40个到服务15,针对服务15暂停的200个请求,放行40个到目标服务(服务16)。
本申请实施例在根据限速策略对目标服务的流量进行限速后,检测到任一待限速服务的负载值小于第一预设负载阈值时,对每一个待限速服务的限速流量进行放行,从而恢复每一个待限速服务的流量。使得集群资源不会出现空闲的状态,提高了集群资源利用率。
在一些实施例中,服务器在根据目标服务对应的当前负载值确定待限速服务的个数之后,该方法还包括:若待限速服务的个数为目标服务的全部上游服务,则增加目标服务的服务子节点数。
在具体实施过程中,在待限速服务的个数为目标服务的全部上游服务时,表明目标服务当前承受的压力较大,因此,为了降低该服务的压力,服务器调用Kubernetes临时增加目标服务的服务子节点数,并进行分布式部署,以使目标服务能够获得更多的集群资源。
本申请实施例中,若目标服务的限速策略中的待限速服务的个数是目标服务的全部上游服务,表明目标服务为业务流程中较重要的服务,所要承担的业务压力较大,因此增加目标服务的服务子节点数,以降低目标服务的压力,提高集群资源利用率。
在一些实施例中,服务器接收业务流程中各服务发送的当前负载值,包括:接收每个服务的服务子节点的当前负载值;基于每个服务的服务子节点的当前负载值计算每个服务的负载平均值,将负载平均值作为每个服务的当前负载值。
在具体实施过程中,业务流程中的各个服务为多节点部署,因此,在接收各服务的当前负载值时,接收每个服务的服务子节点的当前负载值,并基于每个服务的服务子节点的当前负载值计算每个服务的负载平均值,将该负载平均值作为服务的当前负载值。
示例性的,业务流程1包括服务1、服务2、服务3、服务4、服务5等服务,服务1在集群中部署了10个子服务节点,因此,服务器接收服务1这10个子服务节点的当前负载值,计算这10个子服务节点的平均负载值作为服务1的当前负载值。
本申请实施例中,业务流程中的服务通常是多节点部署,因此为了得到服务更准确、全面和客观的当前负载值,根据每个服务的服务子节点的当前负载值计算每个服务的负载平均值作为每个服务的当前负载值。根据平均负载来决定如何分配资源或调整业务流程,以确保整个系统的稳定性和效率,从而进一步提高集群资源利用率。
图2为本申请实施例提供的一种全局流量控制装置结构示意图,如图2所示,该装置包括:接收模块201、确定模块202和限速模块203,其中,
接收模块201,用于接收业务流程中各服务发送的当前负载值;确定模块202,用于基于当前负载值,若存在满足限速条件的目标服务,则根据目标服务对应的当前负载值确定目标服务的限速策略;其中,目标服务为业务流程中的任一服务;限速模块203,用于基于限速策略对目标服务进行流量限速。
在上述实施例的基础上,确定模块202具体用于:根据目标服务对应的当前负载值确定待限速服务的个数;其中,待限速服务为目标服务的上游服务;基于待限速服务的个数确定限速流量;根据待限速服务的个数和限速流量确定目标服务的限速策略。
在上述实施例的基础上,确定模块202具体用于:基于业务流程的执行顺序和待限速服务的个数确定待限速服务中的第一个待限速服务;获取第一个待限速服务的流量;根据第一个待限速服务的流量和待限速服务的个数确定限速流量。
在上述实施例的基础上,限速模块203具体用于:基于业务流程的执行顺序确定每个待限速服务的限速顺序;根据限速顺序和限速流量依次对每个待限速服务进行流量限速;将经限速后的流量放行给目标服务。
在上述实施例的基础上,该装置还包括流量恢复模块,用于获取每个待限速服务的负载值;若存在待限速服务的负载值小于第一预设负载阈值,则基于限速流量和待限速服务的个数确定放行流量;基于放行流量对每个待限速服务进行流量恢复。
在上述实施例的基础上,确定模块202具体用于:若待限速服务的个数为目标服务的全部上游服务,则增加目标服务的服务子节点数。
在上述实施例的基础上,接收模块201具体用于:接收每个服务的服务子节点的当前负载值;基于每个服务的服务子节点的当前负载值计算每个服务的负载平均值,将负载平均值作为每个服务的当前负载值。
图3为本申请实施例提供的电子设备结构示意图,如图3所示,所述电子设备,包括处理器(processor)301、存储器(memory)302和总线303;其中,所述处理器301和存储器302通过所述总线303完成相互间的通信。所述处理器301用于调用所述存储器302中的程序指令,以执行上述各方法实施例所提供的方法。
处理器301可以是一种集成电路芯片,具有信号处理能力。上述处理器301可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器302可以包括但不限于随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)等。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种全局流量控制方法,其特征在于,所述方法包括:
接收业务流程中各服务发送的当前负载值;
基于所述当前负载值,若存在满足限速条件的目标服务,则根据所述目标服务对应的当前负载值确定所述目标服务的限速策略;其中,所述目标服务为所述业务流程中的任一服务;
基于所述限速策略对所述目标服务进行流量限速。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标服务对应的当前负载值确定所述目标服务的限速策略,包括:
根据所述目标服务对应的当前负载值确定待限速服务的个数;其中,所述待限速服务为所述目标服务的上游服务;
基于所述待限速服务的个数确定限速流量;
根据所述待限速服务的个数和所述限速流量确定所述目标服务的限速策略。
3.根据权利要求2所述的方法,其特征在于,所述基于所述待限速服务的个数确定限速流量,包括:
基于所述业务流程的执行顺序和所述待限速服务的个数确定所述待限速服务中的第一个待限速服务;
获取所述第一个待限速服务的流量;
根据所述第一个待限速服务的流量和所述待限速服务的个数确定限速流量。
4.根据权利要求2所述的方法,其特征在于,所述基于所述限速策略对所述目标服务进行流量限速,包括:
基于所述业务流程的执行顺序确定每个所述待限速服务的限速顺序;
根据所述限速顺序和所述限速流量依次对每个所述待限速服务进行流量限速;
将经限速后的流量放行给所述目标服务。
5.根据权利要求2所述的方法,其特征在于,在基于所述限速策略对所述目标服务进行流量限速之后,所述方法还包括:
获取每个所述待限速服务的负载值;
若存在所述待限速服务的负载值小于第一预设负载阈值,则基于所述限速流量和所述待限速服务的个数确定放行流量;
基于所述放行流量对每个所述待限速服务进行流量恢复。
6.根据权利要求2所述的方法,其特征在于,在根据所述目标服务对应的当前负载值确定待限速服务的个数之后,所述方法还包括:
若所述待限速服务的个数为所述目标服务的全部上游服务,则增加所述目标服务的服务子节点数。
7.根据权利要求1-6任一所述的方法,其特征在于,所述接收业务流程中各服务发送的当前负载值,包括:
接收每个所述服务的服务子节点的当前负载值;
基于每个所述服务的服务子节点的当前负载值计算每个所述服务的负载平均值,将所述负载平均值作为每个所述服务的当前负载值。
8.一种全局流量控制装置,其特征在于,所述装置包括:
接收模块,用于接收业务流程中各服务发送的当前负载值;
确定模块,用于基于所述当前负载值,若存在满足限速条件的目标服务,则根据所述目标服务对应的当前负载值确定所述目标服务的限速策略;其中,所述目标服务为所述业务流程中的任一服务;
限速模块,用于基于所述限速策略对所述目标服务进行流量限速。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的方法。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311813702.7A CN117478610B (zh) | 2023-12-27 | 2023-12-27 | 全局流量控制方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311813702.7A CN117478610B (zh) | 2023-12-27 | 2023-12-27 | 全局流量控制方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117478610A true CN117478610A (zh) | 2024-01-30 |
CN117478610B CN117478610B (zh) | 2024-03-12 |
Family
ID=89633312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311813702.7A Active CN117478610B (zh) | 2023-12-27 | 2023-12-27 | 全局流量控制方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117478610B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0333568A (ja) * | 1989-06-28 | 1991-02-13 | Komatsu Ltd | ロードチェック機能付き流量制御装置 |
US20160157240A1 (en) * | 2014-12-01 | 2016-06-02 | Cellwize Wireless Technologies Pte. Ltd. | Method of controlling traffic in a cellular network and system thereof |
US20170041234A1 (en) * | 2014-04-21 | 2017-02-09 | Huawei Technologies Co., Ltd. | Load Balancing Implementation Method, Device, and System |
US20170272371A1 (en) * | 2016-03-21 | 2017-09-21 | Alibaba Group Holding Limited | Flow control in connection with an access request |
CN107347198A (zh) * | 2016-05-05 | 2017-11-14 | 北京金山云网络技术有限公司 | 一种限速方法、限速控制节点和限速设备 |
CN107613528A (zh) * | 2016-07-11 | 2018-01-19 | 华为技术有限公司 | 一种业务流量的控制方法及系统 |
CN110661719A (zh) * | 2019-09-26 | 2020-01-07 | 杭州安恒信息技术股份有限公司 | 流量负载均衡方法和装置 |
CN111787073A (zh) * | 2020-06-18 | 2020-10-16 | 多加网络科技(北京)有限公司 | 一种统一服务的限流熔断平台及其方法 |
CN113596149A (zh) * | 2021-07-28 | 2021-11-02 | 马上消费金融股份有限公司 | 流量控制方法、装置、设备及存储介质 |
CN113660173A (zh) * | 2021-08-16 | 2021-11-16 | 北京字节跳动网络技术有限公司 | 一种流量控制方法、装置、计算机设备及存储介质 |
CN115002033A (zh) * | 2022-05-25 | 2022-09-02 | 建信金融科技有限责任公司 | 一种流量控制方法、装置、设备、存储介质及计算机产品 |
CN115567448A (zh) * | 2022-09-26 | 2023-01-03 | 中国建设银行股份有限公司 | 流量控制方法、装置、设备、介质及程序产品 |
CN117118914A (zh) * | 2023-09-08 | 2023-11-24 | 京东科技信息技术有限公司 | 流量限速方法、系统、装置、设备及介质 |
CN117155942A (zh) * | 2023-09-11 | 2023-12-01 | 重庆邮电大学工业互联网研究院 | 一种微服务动态自适应客户端负载均衡方法及系统 |
-
2023
- 2023-12-27 CN CN202311813702.7A patent/CN117478610B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0333568A (ja) * | 1989-06-28 | 1991-02-13 | Komatsu Ltd | ロードチェック機能付き流量制御装置 |
US20170041234A1 (en) * | 2014-04-21 | 2017-02-09 | Huawei Technologies Co., Ltd. | Load Balancing Implementation Method, Device, and System |
US20160157240A1 (en) * | 2014-12-01 | 2016-06-02 | Cellwize Wireless Technologies Pte. Ltd. | Method of controlling traffic in a cellular network and system thereof |
US20170272371A1 (en) * | 2016-03-21 | 2017-09-21 | Alibaba Group Holding Limited | Flow control in connection with an access request |
CN107347198A (zh) * | 2016-05-05 | 2017-11-14 | 北京金山云网络技术有限公司 | 一种限速方法、限速控制节点和限速设备 |
CN107613528A (zh) * | 2016-07-11 | 2018-01-19 | 华为技术有限公司 | 一种业务流量的控制方法及系统 |
EP3457744A1 (en) * | 2016-07-11 | 2019-03-20 | Huawei Technologies Co., Ltd. | Service traffic control method and system |
US20190150034A1 (en) * | 2016-07-11 | 2019-05-16 | Huawei Technologies Co., Ltd. | Service Traffic Control Method and System and Decision Network Element |
CN110661719A (zh) * | 2019-09-26 | 2020-01-07 | 杭州安恒信息技术股份有限公司 | 流量负载均衡方法和装置 |
CN111787073A (zh) * | 2020-06-18 | 2020-10-16 | 多加网络科技(北京)有限公司 | 一种统一服务的限流熔断平台及其方法 |
CN113596149A (zh) * | 2021-07-28 | 2021-11-02 | 马上消费金融股份有限公司 | 流量控制方法、装置、设备及存储介质 |
CN113660173A (zh) * | 2021-08-16 | 2021-11-16 | 北京字节跳动网络技术有限公司 | 一种流量控制方法、装置、计算机设备及存储介质 |
CN115002033A (zh) * | 2022-05-25 | 2022-09-02 | 建信金融科技有限责任公司 | 一种流量控制方法、装置、设备、存储介质及计算机产品 |
CN115567448A (zh) * | 2022-09-26 | 2023-01-03 | 中国建设银行股份有限公司 | 流量控制方法、装置、设备、介质及程序产品 |
CN117118914A (zh) * | 2023-09-08 | 2023-11-24 | 京东科技信息技术有限公司 | 流量限速方法、系统、装置、设备及介质 |
CN117155942A (zh) * | 2023-09-11 | 2023-12-01 | 重庆邮电大学工业互联网研究院 | 一种微服务动态自适应客户端负载均衡方法及系统 |
Non-Patent Citations (2)
Title |
---|
李莉, 曹阳, 卢勇: "基于MPLS的自适应流量工程", 武汉大学学报(理学版), no. 05, 23 October 2002 (2002-10-23) * |
杨柳;范平志;郝莉;: "LTE系统中事件驱动M2M业务的流量控制随机接入协议", 通信学报, no. 12, 25 December 2014 (2014-12-25) * |
Also Published As
Publication number | Publication date |
---|---|
CN117478610B (zh) | 2024-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11888756B2 (en) | Software load balancer to maximize utilization | |
WO2018014811A1 (zh) | 风险识别方法、客户端设备及风险识别系统 | |
CN109117280B (zh) | 电子装置及其限制进程间通信的方法、存储介质 | |
CN112866136B (zh) | 业务数据处理方法和装置 | |
CN107404443A (zh) | 队列缓存资源控制方法及装置、服务器及存储介质 | |
CN109117279B (zh) | 电子装置及其限制进程间通信的方法、存储介质 | |
CN114928579A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN111343102A (zh) | 流速控制方法、服务端服务器、客户端服务器和系统 | |
CN115277577A (zh) | 数据处理方法、装置、计算机设备和计算机可读存储介质 | |
CN110838987B (zh) | 队列限流方法、存储介质 | |
CN111078386A (zh) | 一种分布式调度系统的控制方法及控制装置 | |
CN117478610B (zh) | 全局流量控制方法、装置、电子设备及存储介质 | |
US20180115498A1 (en) | Systems and methods for adaptive credit-based flow | |
CN111555987B (zh) | 限流配置方法、装置、设备及计算机存储介质 | |
CN112380011A (zh) | 一种服务容量的动态调整方法及装置 | |
CN117032977A (zh) | 混部应用资源分配方法、装置、计算机设备及存储介质 | |
CN115766612A (zh) | 一种基于权重转换概率的调度方法及相应的装置 | |
US20230273833A1 (en) | Resource scheduling method, electronic device, and storage medium | |
WO2021018058A1 (zh) | 系统过负荷控制方法及装置 | |
CN109933426B (zh) | 服务调用的处理方法、装置、电子设备及可读存储介质 | |
CN112073327A (zh) | 一种抗拥塞的软件分流方法、装置及存储介质 | |
CN114938330B (zh) | 网络功能实例的服务器部署方法及装置 | |
Richardson et al. | Adaptive scheduling: Overload scheduling for mission critical systems | |
CN117135127A (zh) | 网络流量队列的处理方法、装置、电子设备及存储介质 | |
CN114979166B (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 |