服务容量调整方法及其装置与流程

文档序号:32309623发布日期:2022-11-23 11:08阅读:39来源:国知局
服务容量调整方法及其装置与流程

1.本公开涉及计算机技术领域,尤其涉及自动驾驶领域及自动驾驶资源分配领域等,特别涉及一种服务容量调整方法、装置、电子设备及存储介质。


背景技术:

2.目前一些大型业务往往由多个服务组成,并利用调用依赖关系链协同工作。企业为了降低成本会进行提升资源利用度的策略。最为常用的策略,是在某个服务的入口流量增加时,进行资源扩容;流量减少时,会进行资源缩容。
3.特别是涉及自动驾驶领域,服务容量调整极为重要。对于一些流量增加迅猛的服务进行扩容时,由于流量增加信号传递较慢,处于其调用链后端的服务往往来不及做相应的扩容而造成雪崩,使得整个依赖链涉及的所有服务不可用。在这种情况下,如何在服务端有效的利用容量技术为自动驾驶车辆提供高效的资源调用,根据行车场景合理分配资源实现计算最优化,并能保证驾驶安全成为亟需解决的问题。


技术实现要素:

4.为克服相关技术中存在的问题,本公开提供一种服务容量调整方法及其装置。
5.根据本公开实施例的第一方面,提供一种服务容量调整方法,包括:响应于接收到第一服务发送的资源容量调整信号,基于预设的有向无环图dag确定与所述第一服务处于同一调用关系依赖链上的至少一个第二服务;其中,所述第一服务与所述至少一个第二服务均为目标业务的服务,所述dag中的节点用于表示所述目标业务的多个服务,且所述dag中的有向边用于表示所述多个服务之间的调用依赖关系;对所述第一服务的资源容量和所述至少一个第二服务之中每个所述第二服务的资源容量分别进行调整。
6.根据本公开实施例的第二方面,提供一种服务容量调整装置,包括:确定模块,用于在接收到第一服务发送的资源容量调整信号时,基于预设的有向无环图dag确定与所述第一服务处于同一调用关系依赖链上的至少一个第二服务;其中,所述第一服务与所述至少一个第二服务均为目标业务的服务,所述dag中的节点用于表示所述目标业务的多个服务,且所述dag中的有向边用于表示所述多个服务之间的调用依赖关系;调整模块,用于对所述第一服务的资源容量和所述至少一个第二服务之中每个所述第二服务的资源容量分别进行调整。
7.根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述指令被所述处理器执行,以使所述处理器能够执行如前述第一方面所述的服务容量调整方法。
8.根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如前述第一方面所述的
服务容量调整方法。
9.本公开的实施例提供的技术方案可以包括以下有益效果:可以基于有向无环图dag确定出与发生流量变化的第一服务处于同一调用关系依赖链上的第二服务,这样,可以对处于同一调用关系依赖链上的所有服务同步进行资源容量的调整,省去了流量传导的时间,加快了大型服务的反应速度,提升了突发流量时业务的服务质量。另外,通过将本公开实施例提供的服务容量调整技术方案应用于自动驾驶服务端的计算机设备,有利于提高对自动驾驶领域合理分配资源的处理效果,为自动驾驶车辆提供高效的资源调用,实现计算最优化,进而有利于提高自动驾驶的安全性。
10.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
11.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
12.图1是根据一示例性实施例示出的一种服务容量调整方法的流程图。
13.图2是根据一示例性实施例示出的另一种服务容量调整方法的流程图。
14.图3为本公开实施例的有向无环图dag的示例图。
15.图4是根据一示例性实施例示出的一种服务容量调整装置框图.图5是根据一示例性实施例示出的另一种服务容量调整装置框图。
16.图6是根据一示例性实施例示出的又一种服务容量调整装置框图。
17.图7是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
18.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
19.需要说明的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“至少一个”的含义是一个或多个,多个的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
20.还需要说明的是,本公开实施例的服务容量调整方法可以应用于服务器,也可以应用于自动驾驶服务端的计算机设备。也就是说,本公开实施例的服务容量调整技术方案可以扩展到自动驾驶云端服务器应用领域。
21.图1是根据一示例性实施例示出的一种服务容量调整方法的流程图,如图1所示,该服务容量调整方法用于电子设备中,作为一种示例,该电子设备可以为服务器。该方法包括以下步骤。
22.在步骤101中,响应于接收到第一服务发送的资源容量调整信号,基于预设的有向无环图dag确定与第一服务处于同一调用关系依赖链上的至少一个第二服务。
23.其中,在本公开的实施例中,第一服务与至少一个第二服务均为目标业务的服务,dag中的节点用于表示目标业务的多个服务,且dag中的有向边用于表示多个服务之间的调用依赖关系。
24.需要说明的是,本公开实施例中的有向无环图dag可以是预先构建的,在一种实现方式中,可以预先基于上述目标业务的多个服务之间的调用依赖关系构建该目标业务的有向无环图dag。这样,在实际应用中,每当该目标业务下的某个服务的流量变化幅度超过阈值时,可以基于该dag确定与该服务处于同一调用关系依赖链上的其他服务,这样,将该服务和其他服务一同进行资源容量的调整。
25.值得说明的是,本公开实施例中的第一服务是指目标业务下流量变化幅度超过阈值的服务。在一种实现方式中,当目标业务下的某个或某些流量变化幅度超过阈值的服务称为第一服务,第一服务可以向电子设备发送资源容量调整信号。在接收到第一服务发送的资源容量调整信号时,可以基于预先构建的dag确定与该第一服务处于同一调用关系依赖链上的第二服务,也就是说,找出与该第一服务处于同一调用关系依赖链上的其他服务,以便在发现调用关系依赖链首段的服务流量变化迅速时,可以同时针对整个调用关系依赖链上的所有服务进行资源容量的调整。
26.在步骤102中,对第一服务的资源容量和每个第二服务的资源容量分别进行调整。
27.在一种实现方式中,确定第一服务的流量变化量,并可以按照预设的资源容量调整策略和第一服务的流量变化量,对第一服务的资源容量和每个第二服务的资源容量分别进行调整。
28.作为一种可能实现方式的示例,该资源容量调整策略可以是同一调用关系依赖链上的服务的资源容量调整幅度保持一致。例如,确定第一服务的流量变化量,根据第一服务的流量变化量确定该第一服务的资源容量调整量为a1,则与该第一服务处于同一调用关系依赖链上的第二服务的资源容量调整量同样也为a1,可以基于该资源容量调整量a1,对第一服务的资源容量和每个第二服务的资源容量分别进行调整。
29.需要说明的是,由于服务之间的调用依赖关系,所以在第一服务的流量发生变化时,与第一服务处于同一调用关系依赖链上的其他服务的流量变化可能比该第一服务的流量变化大,或者,与第一服务处于同一调用关系依赖链上的其他服务的流量变化可能比该第一服务的流量变化小,基于该特性,本公开实施例可以基于dag之中服务之间的调用依赖关系,确定同一调用关系依赖链上各服务的资源容量调整量。在另一种实现方式中,可以确定第一服务的流量变化量,并根据该第一服务的流量变化量和dag确定第一服务的资源容量调整量和每个第二服务的资源容量调整量,进而基于第一服务的资源容量调整量和每个第二服务的资源容量调整量,对对应服务的资源容量进行调整。
30.还需要说明的是,本公开实施例中的流量变化可以是指流量减少,或者还可以是指流量增加;本公开实施例中的资源容量调整可以指示资源容量扩充(即资源扩容),或者还可以是指资源容量缩减(即资源缩容)。在一种实现方式中,流量减少,则需要对对应服务进行资源缩容;流量增加,则需要对对应服务进行资源扩容。
31.通过实施本公开实施例,可以基于有向无环图dag确定出与发生流量变化的第一服务处于同一调用关系依赖链上的第二服务,这样,可以对处于同一调用关系依赖链上的所有服务同步进行资源容量的调整,省去了流量传导的时间,加快了大型服务的反应速度,
提升了突发流量时业务的服务质量。另外,通过将本公开实施例提供的服务容量调整技术方案应用于自动驾驶服务端的计算机设备,有利于提高对自动驾驶领域合理分配资源的处理效果,为自动驾驶车辆提供高效的资源调用,实现计算最优化,进而有利于提高自动驾驶的安全性。
32.图2是根据一示例性实施例示出的另一种服务容量调整方法的流程图,如图2所示,该服务容量调整方法用于电子设备中,作为一种示例,该电子设备可以为服务器。该方法包括以下步骤。
33.在步骤201中,响应于接收到第一服务发送的资源容量调整信号,基于预设的有向无环图dag确定与第一服务处于同一调用关系依赖链上的至少一个第二服务。
34.其中,在本公开的实施例中,第一服务与至少一个第二服务均为目标业务的服务,dag中的节点用于表示目标业务的多个服务,且dag中的有向边用于表示多个服务之间的调用依赖关系。
35.在本公开的实施例中,步骤201可以分别采用本公开的各实施例中的任一种方式实现,本公开实施例并不对此作出限定,也不再赘述。
36.在步骤202中,确定第一服务的流量变化量。
37.在一种实现方式中,可以对第一服务的流量进行监控,在第一服务的流量发生变化时,可以监控到该第一服务的流量变化量,从而可以确定出该第一服务的流量变化量。
38.在一种可能的实现方式中,本技术实施例的电子设备可以实现对该第一服务流量的监控,或者,还可以是第一服务对自身的流量进行监控,在监控到自身的流量变化幅度超过阈值,将监控到的流量变化量发送给电子设备,以使得电子设备可以确定该第一服务的流量变化量。
39.在步骤203中,根据第一服务的流量变化量和dag,确定第一服务的资源容量调整量和每个第二服务的资源容量调整量。
40.需要说明的是,本公开实施例中的有向无环图dag可以是预先构建的,在一种实现方式中,可以确定目标业务的多个服务之间的调用依赖关系,并以多个服务为节点,调用依赖关系为边,构建有向无环图dag。
41.例如,以目标业务包括服务1、服务2、服务3、服务4、服务5和服务6为例,假设服务1调用服务2,服务2调用服务3和服务4,服务3调用服务4,服务5调用服务6,则如图3所示,可以以服务1、服务2、服务3、服务4、服务5和服务6为节点,服务1至服务6之间的调用依赖关系为边,构建dag。这样,在实际应用中,每当该目标业务下的某个服务的流量变化幅度超过阈值时,可以基于该dag确定与该服务处于同一调用关系依赖链上的其他服务,这样,将该服务和其他服务一同进行资源容量的调整。
42.需要说明的是,由于服务之间的调用依赖关系,所以在第一服务的流量发生变化时,与第一服务处于同一调用关系依赖链上的其他服务的流量变化可能比该第一服务的流量变化大,或者,与第一服务处于同一调用关系依赖链上的其他服务的流量变化可能比该第一服务的流量变化小,基于该特性,本公开实施例可以基于dag之中服务之间的调用依赖关系,确定同一调用关系依赖链上各服务的资源容量调整量。
43.在一种可能的实现方式中,dag之中节点之间的边上具有权重,该权重可以指示对应服务在对应调用关系依赖链上所占的权重比值,例如,权重越大,则表示该权重对应服务
的调用依赖关系越强,即该权重对应的服务被处于同一调用关系依赖链的其他服务调用的次数较多;权重越小,则表示该权重对应服务的调用依赖关系弱,即权重对应的服务被处于同一调用关系依赖链的其他服务调用的次数较小。被调用次数较小,则相应的流量传导量相应也会较少,因此对这类服务可以进行较小幅度的资源容量调整;被调用次数较多,则相应的流量传到量相应也会较多,因此对这类服务可以进行较大幅度的资源容量调整。
44.基于上述特性,在本公开的一些实施例中,可以根据第一服务的流量变化量和预设的流量变化量与资源容量调整量之间的映射关系,确定第一服务的资源容量调整量;根据dag,确定每个第二服务的权重;根据第一服务的流量变化量和每个第二服务的权重,确定每个第二服务的流量变化量;根据每个第二服务的流量变化量和映射关系,确定每个第二服务的资源容量调整量。
45.在一种可能实现方式中,可以预先建立流量变化量与资源容量调整量之间的映射关系。这样,在对第一服务和与其处于同一调用关系依赖链上的第二服务进行资源容量调整时,可以根据该第一服务的流量变化量和和该映射关系,确定该第一服务的资源容量调整量。利用dag确定第二服务的权重。然后,可以根据该第一服务的流量变化量和第二服务的权重,确定出该第二服务的流量变化量,根据该第二服务的流量变化量和该映射关系,确定出该第二服务的资源容量调整量。
46.需要说明的是,上述第二服务的权重的确定方式可以是基于上述dag中权重的定义方式来决定。在一种实现方式中,dag中各个节点具有对应的权重,则可以根据该dag中各个节点的权重,确定上述第二服务的权重。例如,dag中每个服务节点具有对应的权重,这样,在确定与第一服务处于同一调用关系依赖链上的第二服务之后,可以基于该dag中每个服务节点的权重,确定出该第二服务的权重。
47.在另一种实现方式中,dag中每条边具有对应的权重,则可以根据dag中每条边的权重,确定上述第二服务的权重。作为一种示例,dag中每条边具有对应的权重,这样,在确定与第一服务处于同一调用关系依赖链上的第二服务之后,可以基于该dag中每条边的权重,确定出该第二服务的权重。例如,如图3所示,以第一服务为服务1为例,确定出与该服务1处于同一调用关系依赖链上的第二服务分别为服务2、服务3和服务4,基于该dag中每条边的权重,可以确定出服务2的权重为0.5,服务3的权重为0.25=0.5*0.5,服务4的权重为0.375=0.5*0.5+0.5*0.5*0.5。这样,在确定出每个第二服务的权重之后,可以根据第一服务的流量变化量和每个第二服务的权重,例如,将第一服务的流量变化量与每个第二服务的权重进行相乘,得到的乘积值即为对应的第二服务的流量变化量,从而可以确定出每个第二服务的资源容量调整量。
48.需要说明的是,本公开实施例中dag中的权重可以是基于历史数据确定的,例如可以基于该目标业务的压力测试过程中所产生的历史数据,来确定dag中各节点的权重,或dag中各边的权重。本公开对dag中权重的确定方式不做具体限定。
49.在步骤204中,根据第一服务的资源容量调整量对第一服务的资源容量进行调整,并根据每个第二服务的资源容量调整量对对应的第二服务的资源容量进行调整。
50.在一种可能的实现方式中,在确定第一服务的资源容量调整量和每个第二服务的资源容量调整量时,可以向第一服务和第二服务发送通知信号,以通知第一服务根据第一服务的资源容量调整量对第一服务进行资源容量调整,并通过每个第二服务根据对应的资
源容量调整量进行资源容量调整。
51.在一种可能的实现方式中,以资源容量调整为资源扩容为例,则可以根据第一服务的资源扩容量对第一服务进行资源扩容,并根据每个第二服务的资源扩容量对对应的第二服务进行资源扩容。以资源容量调整为资源缩容为例,则可以根据第一服务的资源缩容量对第一服务进行资源缩容,并根据每个第二服务的资源缩容量对对应的第二服务进行资源缩容。
52.通过实施本公开实施例,可以基于有向无环图dag确定出与发生流量变化的第一服务处于同一调用关系依赖链上的第二服务,这样,可以对处于同一调用关系依赖链上的所有服务同步进行资源容量的调整,省去了流量传导的时间,加快了大型服务的反应速度,提升了突发流量时业务的服务质量。另外,在针对整个调用链上的所有服务进行资源容量调整时,利用dag和第一服务的流量变化量,确定第一服务和第二服务的资源容量调整量,使得基于实际流量变化情况分别为每个服务进行适当的资源容量调整,可以降低成本的同时,可以进一步有效提升了资源利用度。
53.图4是根据一示例性实施例示出的一种服务容量调整装置框图。参照图4,该装置包括确定模块410和调整模块420。
54.其中,确定模块410用于在接收到第一服务发送的资源容量调整信号时,基于预设的有向无环图dag确定与第一服务处于同一调用关系依赖链上的至少一个第二服务。其中,在本公开的实施例中,第一服务与至少一个第二服务均为目标业务的服务,dag中的节点用于表示目标业务的多个服务,且dag中的有向边用于表示多个服务之间的调用依赖关系。
55.调整模块420用于对第一服务的资源容量和每个第二服务的资源容量分别进行调整。
56.需要说明的是,由于服务之间的调用依赖关系,所以在第一服务的流量发生变化时,与第一服务处于同一调用关系依赖链上的其他服务的流量变化可能比该第一服务的流量变化大,或者,与第一服务处于同一调用关系依赖链上的其他服务的流量变化可能比该第一服务的流量变化小,基于该特性,本公开实施例可以基于dag之中服务之间的调用依赖关系,确定同一调用关系依赖链上各服务的资源容量调整量。在本公开的一些实施例中,如图5所示,在如图4的基础上,该调整模块520可包括:第一确定单元521、第二确定单元522和调整单元523。其中,第一确定单元521用于确定第一服务的流量变化量;第二确定单元522用于根据第一服务的流量变化量和dag,确定第一服务的资源容量调整量和每个第二服务的资源容量调整量;调整单元523用于根据第一服务的资源容量调整量对第一服务的资源容量进行调整,并根据每个第二服务的资源容量调整量对对应的第二服务的资源容量进行调整。
57.在一种可能的实现方式中,第二确定单元522具体用于:根据第一服务的流量变化量和预设的流量变化量与资源容量调整量之间的映射关系,确定第一服务的资源容量调整量;根据dag,确定每个第二服务的权重;根据第一服务的流量变化量和每个第二服务的权重,确定每个第二服务的流量变化量;根据每个第二服务的流量变化量和映射关系,确定每个第二服务的资源容量调整量。
58.在一种可能的实现方式中,dag中各个节点具有对应的权重;第二确定单元522具体用于:根据dag中各个节点的权重,确定每个第二服务的权重。
59.在一种可能的实现方式中,dag中每条边具有对应的权重;第二确定单元522具体用于:根据dag中每条边的权重,确定每个第二服务的权重。
60.其中,图5中510和图4中410具有相同功能和结构。
61.在本公开的一些实施例中,如图6所示,该服务容量调整装置还可包括:构建模块630。其中,构建模块630用于确定目标业务的多个服务之间的调用依赖关系,并以多个服务为节点,调用依赖关系为边,构建dag。其中,图6中610-620和图5中510-520具有相同功能和结构。
62.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
63.通过实施本公开实施例,可以基于有向无环图dag确定出与发生流量变化的第一服务处于同一调用关系依赖链上的第二服务,这样,可以对处于同一调用关系依赖链上的所有服务同步进行资源容量的调整,省去了流量传导的时间,加快了大型服务的反应速度,提升了突发流量时业务的服务质量。
64.图7是根据一示例性实施例示出的一种电子设备700的框图。例如,电子设备700旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。作为一种示例,该电子设备700可以为自动驾驶服务端的计算机设备。如图7所示,上述电子设备700可以包括:存储器710及处理器720,连接不同组件(包括存储器710和处理器720)的总线730,存储器710存储有处理器720可执行指令;其中,处理器720被配置为执行所述指令,以实现本公开实施例所述的服务容量调整方法。
65.总线730表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
66.电子设备700典型地包括多种电子设备可读介质。这些介质可以是任何能够被电子设备700访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。存储器710还可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)740和/或高速缓存存储器750。电子设备700可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统760可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom, dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线730相连。存储器710可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开各实施例的功能。
67.具有一组(至少一个)程序模块770的程序/实用工具780,可以存储在例如存储器710中,这样的程序模块770包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块770通常执行本公开所描述的实施例中的功能和/或方法。
68.电子设备700也可以与一个或多个外部设备790(例如键盘、指向设备、显示器791等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口792进行。并且,电子设备700还可以通过网络适配器793与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器793通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
69.处理器720通过运行存储在存储器710中的程序,从而执行各种功能应用以及数据处理。
70.需要说明的是,本实施例的服务器的实施过程和技术原理参见前述对本公开实施例的服务容量调整方法的解释说明,此处不再赘述。
71.为了实现上述实施例,本公开还提出一种存储介质。
72.其中,该存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如前所述的服务容量调整方法。
73.为了实现上述实施例,本公开还提供一种计算机程序产品。该计算机程序产品包括计算机程序,该计算机程序在被服务器的处理器执行时实现如前所述的服务容量调整方法。
74.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
75.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1