当前位置: 首页 > 专利查询>南京大学专利>正文

一种面向多任务感知的微服务部署方法技术

技术编号:37982412 阅读:7 留言:0更新日期:2023-06-30 09:57
本发明专利技术公开一种面向多任务感知的微服务部署方法,以微服务为顶点,各微服务之间的调用关系、时序关系、约束关系等基本规则为有向边,建立图的模型,将各顶点所代表的微服务的资源指标映射为其出边的权值,形成AOE网,并将其中那些承担关键任务的微服务按各自重要性加以标识,结合其余各微服务的资源指标共同构成基于AOE网的多任务感知部署模型;通过多任务感知的部署算法对该模型计算出具有优先等级的、由微服务组成的路径,并以贪心的原则按照各路径的优先等级优先对剩余资源较多的集群物理机节点进行试分配,最终按照分配结果给出一个关于原微服务组拆分和部署的优化方案,本发明专利技术帮助用户灵活、高效地完成部署工作,以达到解决用户部署难的问题。达到解决用户部署难的问题。达到解决用户部署难的问题。

【技术实现步骤摘要】
一种面向多任务感知的微服务部署方法


[0001]本专利技术涉及一种面向多任务感知的微服务部署方法,属于计算机软件


技术介绍

[0002]在传统的基于微服务的分布式应用部署场景中,如果集群物理机节点的剩余资源受限,一般的部署方法将会简单地将组成该应用的微服务依据其占用资源和集群剩余资源的关系进行拆分部署,从而尽可能地保证负载均衡、系统可用。这种做法大多忽略掉了分布式应用本身的特性,没有从微服务之间的关系出发进行考虑从而拆分,也没有对在应用中承担关键任务的微服务做专门的处理,很有可能造成微服务间通信链路的冗余、降低应用的运行效率。由于传统技术无法在该问题上给出非常好的解决方案,因此,如何在部署中对由微服务组成的分布式应用进行建模并依据一定的原则对微服务进行拆分部署,成为了该领域的迫切需要解决的问题。

技术实现思路

[0003]专利技术目的:针对现有技术中存在的问题与不足,本专利技术提供一种面向多任务感知的微服务部署方法,可以在当有一组相互关联的微服务要被部署而集群物理机各节点剩余资源均告急时,为用户生成部署方案,并使该方案能满足:1、微服务组中多个对用户来说在上层应用中承担关键任务的微服务能被优先考虑;2、用户可依据该方案将该组微服务拆分并部署在多个节点上;3、尽可能地保证各微服务间相互关系保存完善、有密切数据来往的微服务不被过度拆分、同时集群运行的效率还尽可能高等。
[0004]技术方案:为帮助用户在面对集群物理机节点剩余资源告急时能够灵活、高效地将一组相互关联的微服务部署到集群节点上,以实现部署后的系统可以尽可能地高效运行,提出了一种面向多任务感知的微服务部署方法,通过基于AOE网的多任务感知部署模型将微服务组织起来,结合多任务感知的部署算法计算出一条条具有优先等级的、由微服务组成的路径,并以贪心的原则按照各路径的优先等级优先对剩余资源较多的集群物理机节点进行试分配,最终按照分配结果给出一个关于原微服务组拆分和部署的优化方案,该方法包括以下步骤:
[0005]步骤1:将待部署的微服务组以AOE网模型的形式组织,并将满足用户预设条件的微服务按各自重要性加以标识,形成基于AOE网的多任务感知部署模型,将满足用户预设条件的微服务称为关键微服务。其中的满足用户预设条件,是指用户可以根据情况自行定义承担关键任务的微服务,一般来说,这些承担关键任务的微服务对于整个集群应用而言,存在需要保障其稳定运行的较高优先级,例如其在各微服务间的数据流向上处于关键位置,存在大量数据吞吐行为、其在计算上需要较大算力,产生大量临时数据,不能接受频繁的调度和重部署等,有关定义可由实施部署的用户自行拓展延伸并在后续部署过程中给出它们各自所承担的关键任务的优先级即可。
[0006]步骤2:结合除关键微服务以外的其余各微服务的资源指标,通过多任务感知的算
法对该部署模型计算出一条条具有优先等级的、由微服务组成的路径。
[0007]步骤3:以贪心的原则按照各路径的优先等级优先对剩余资源较多的集群物理机节点进行试分配,如果出现某一条路径不能被完整部署到一个节点上时,则顺序依次尝试其它节点,如果仍然不可,则持续对其进行对半拆分保留前半段,直到可以部署为止,如果试分配过程中出现将路径拆分到只有一个微服务时也无法在任一节点上部署的情况,则宣告集群状态已到极限,部署不可行,如果整个试分配过程顺利,则按照分配结果最终给出一个关于原微服务组拆分和部署的优化方案。
[0008]所述步骤1包括以下步骤:
[0009]步骤1.1:以微服务为顶点,各微服务之间的调用关系、时序关系、约束关系等基本规则为有向边,建立有向无环图的模型。
[0010]步骤1.2:将各顶点所代表的微服务的资源指标映射为其出边的权值,形成AOE网(Activity On Edge Network)。
[0011]步骤1.3:用连续的正整数标识出所有关键微服务,从1开始按重要性依次递增,这些带有标识数的微服务是接下来算法中要被优先考虑的关键部分。
[0012]步骤1.4:为AOE网增添一个顶点,该顶点指向所有入度为0的顶点,所有出边权值设置为0,该顶点即为起点;再为AOE网增添一个顶点,所有出度为0的顶点都指向该顶点,该顶点的所有入边权值设置为0,该顶点即为终点。最终加上起点和终点后的AOE网即为基于AOE网的多任务感知部署模型。
[0013]所述步骤2包括以下步骤:
[0014]步骤2.1:开始进入多任务感知的算法流程,首先计算此时所有微服务的资源指标之和t
a
,然后将作为关键微服务对应顶点的全部出边的权值都设置为t
a
乘以该关键微服务的标识数。
[0015]步骤2.2:对基于AOE网的多任务感知部署模型求关键路径,并将关键路径中的起点、终点、出边权值为0的顶点去除,将最终得到的路径中的顶点所表示的微服务依次放入以微服务为元素的队列M中,再将基于AOE网的多任务感知部署模型中该路径包含的所有顶点的出边权值设置为0。
[0016]步骤2.3:重复2.2中的操作直到基于AOE网的多任务感知部署模型中所有的边的权值都被设置为0。
[0017]步骤2.4:新建一个以微服务为元素的线性表,持续弹出队列M中的元素到线性表中,直到最后一个被弹出的微服务在基于AOE网的多任务感知部署模型中所代表顶点的出度大于1或此时队列M的队首在基于AOE网的多任务感知部署模型中的所代表顶点的入度大于1,或队列M已空,随后将该线性表加入以线性表为元素的双端队列T的尾部。
[0018]步骤2.5:重复2.4中的操作直到队列M为空,最终得到的双端队列T中顺序存放的以微服务为元素的线性表,即为一条条具有优先等级的、由微服务组成的路径。
[0019]所述步骤3包括以下步骤:
[0020]步骤3.1:建立元素为物理机节点的最大优先队列N,最大优先队列N的关键字为节点的资源指标,并将所有节点放入其中。
[0021]步骤3.2:弹出最大优先队列N的队首n,弹出双端队列T的队首t,检查n是否可以容纳t,若可以,则将n的剩余CPU和内存减去t要消耗的CPU和内存,随后将n插回最大优先队列
N,并生成一条将t中所有微服务部署于n的部署规则,将该部署规则加入规则集合S,集合S即部署策略;若不可以,则不断从N中弹出节点,检查是否可以容纳t,直到可以或者最大优先队列N为空,如果出现了最大优先队列N为空的情况,则进一步将t一分为二,顺序检查先后弹出的节点是否可以容纳t的前半段,若都不可以则在t的前半段基础上继续二分直到可以为止,剩余后段则插回双端队列T的队首,最后将弹出的节点全部插回最大优先队列N中,如果直到前段只剩一个微服务也还是无法部署到任何一个节点上,则宣告集群状态已到极限,部署不可行。
[0022]步骤3.3:重复3.2中的操作直到双端队列T为空或部署不可行,此时若部署可行,由部署规则组成的集合S即为最终的部署策略。
[0023]所述步骤1.2包括以下步骤:
...

【技术保护点】

【技术特征摘要】
1.一种面向多任务感知的微服务部署方法,其特征在于,包括以下步骤:步骤1:将待部署的微服务组以AOE网模型的形式组织,并将满足用户预设条件的微服务按各自重要性加以标识,形成基于AOE网的多任务感知部署模型,将满足用户预设条件的微服务称为关键微服务;步骤2:结合除关键微服务以外的其余各微服务的资源指标,通过多任务感知的算法对该部署模型计算出一条条具有优先等级的、由微服务组成的路径;步骤3:以贪心的原则按照各路径的优先等级优先对剩余资源较多的集群物理机节点进行试分配,如果出现某一条路径不能被完整部署到一个节点上时,则顺序依次尝试其它节点,如果仍然不可,则持续对其进行对半拆分保留前半段,直到可以部署为止,如果试分配过程中出现将路径拆分到只有一个微服务时也无法在任一节点上部署的情况,则宣告集群状态已到极限,部署不可行,如果整个试分配过程顺利,则按照分配结果最终给出一个关于原微服务组拆分和部署的优化方案。2.根据权利要求1所述的面向多任务感知的微服务部署方法,其特征在于,所述步骤1包括以下步骤:步骤1.1:以微服务为顶点,各微服务之间的调用关系、时序关系、约束关系等基本规则为有向边,建立有向无环图的模型;步骤1.2:将各顶点所代表的微服务的资源指标映射为其出边的权值,形成AOE网(Activity On Edge Network);步骤1.3:用连续的正整数标识出所有关键微服务,从1开始按重要性依次递增,这些带有标识数的微服务是接下来算法中要被优先考虑的关键部分;步骤1.4:为AOE网增添一个顶点,该顶点指向所有入度为0的顶点,所有出边权值设置为0,该顶点即为起点;再为AOE网增添一个顶点,所有出度为0的顶点都指向该顶点,该顶点的所有入边权值设置为0,该顶点即为终点;最终加上起点和终点后的AOE网即为基于AOE网的多任务感知部署模型。3.根据权利要求1所述的面向多任务感知的微服务部署方法,其特征在于,所述步骤2包括以下步骤:步骤2.1:开始进入多任务感知的算法流程,首先计算此时所有微服务的资源指标之和t
a
,然后将作为关键任务的微服务对应顶点的全部出边的权值都设置为t
a
乘以该微服务的标识数;步骤2.2:对基于AOE网的多任务感知部署模型求关键路径,并将关键路径中的起点、终点、出边权值为0的顶点去除,将最终得到的路径中的顶点所表示的微服务依次放入以微服务为元素的队列M中,再将基于AOE网的多任务感知部署模型中该路径包含的所有顶点的出边权值设置为0;步骤2.3:重复2.2中的操作直到基于AOE网的多任务感知部署模型中所有的边的权值都被设置为0;步骤2.4:新建一个以微服务为元素的线性表,持续弹出队列M中的元素到线性表中,直到最后一个被弹出的微服务在基于AOE网的多任务感知部署模型中所代表顶点的出度大于1或此时队列M的队首在基于AOE网的多任务感知部署模型中的所代表顶点的入度大于1,或队列M已空,随后将该线性表加入以线性表为元素的双端队列T的尾部;
步骤2.5:重复2.4中的操作直到队列M为空,最终得到的双端队列T中顺序存放的以微服务为元素的线性表,即为一条条具有优先等级的、由微服务组成的路径。4.根据权利要求1所述的面...

【专利技术属性】
技术研发人员:胡昊匡胤鑫蔡逸凡顾宇豪
申请(专利权)人:南京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1