首页 / 专利库 / 地基 / 基础 / 多目标优化下的微服务组合部署与调度方法

多目标优化下的微服务组合部署与调度方法

阅读:2发布:2020-07-01

专利汇可以提供多目标优化下的微服务组合部署与调度方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了多目标优化下的微 服务组合 部署与调度方法,包括获取资源中心相关数据、微服务相关数据和用户相关数据;建立微服务组合部署与调度的多目标优化模型;采用多目标优化 算法 NSGA-III对所述的多目标优化模型进行求解;计算出每一个资源中心需要启动的微服务数量向量;根据所述的微服务数量向量对资源中心的微服务进行部署和调度。本发明构建了详尽的微服务的组合调度问题的多目标优化模型,并通过改进的NSGA-III算法对模型进行求解,对求解结果进行解码获得微服务的组合部署策略,实验证明本发明方法的微服务组合部署策略比传统部署策略在资源中心计算存储资源、负载均衡率以及服务实际使用率均有较大提升。,下面是多目标优化下的微服务组合部署与调度方法专利的具体信息内容。

1.多目标优化下的微服务组合部署与调度方法,其特征在于,包括以下步骤:
步骤1,获取资源中心属性数据、微服务属性数据和用户属性数据;
步骤2,建立微服务组合部署与调度的多目标优化模型,模型表示如下
其中x为决策变量,F(x)为该模型的目标函数,h表示子目标函数的个数,gi(x)表示不等式约束条件,m表示不等式约束的个数,hj(x)表示等式约束条件,n表示等式约束条件的个数;
步骤3,采用改进的多目标优化算法NSGA-III对所述的多目标优化模型进行求解,计算出每一个资源中心需要启动的微服务数量向量;
步骤4,根据所述的微服务数量向量对资源中心的微服务进行部署和调度。
2.根据权利要求1所述的微服务组合部署与调度方法,其特征在于,所述资源中心属性数据包括资源中心集合,以及每一个资源中心的资源信息和位置信息,所述的资源信息包括计算资源信息和存储资源信息,所述的位置信息包括所述资源中心的经度和纬度;所述的微服务属性数据包括微服务集合,以及每一个微服务启动一个实例所需要的计算资源和存储资源;所述的用户属性数据包括用户集,以及每一个用户的服务请求信息和位置信息;
所述的目标优化模型的目标函数F(x)中子目标函数包括,计算资源空闲率最小化、存储资源的空闲率最小化、微服务的实际空闲率最小化、计算负载均衡率最小化和存储负载均衡率最小化;约束条件包括服务的完备性约束、计算资源总量约束、存储资源总量约束和服务序列总量约束。
3.据权利要求2所述的微服务组合部署与调度方法,其特征在于,资源中心集表示为RC={rc1,rc2,...,rcN},N为资源中心的数量,第i个资源中心的信息表示为rci=(RRes(r_comi,r_stoi),RLoc(r_lati,r_loni)),其中i∈[1,N],RRes(r_comi,r_stoi)表示第i个资源中心包含计算资源r_comi和存储资源r_stoi,RLoc(r_lati,r_loni)表示第i个资源中心所处的位置信息经度r_lati和纬度r_loni;微服务集合表示为MS={s1,s2,...,sK},K为微服务的种类数量,第j个微服务表示为sj=(SRes(r_comj,r_stoj)),j∈[1,K],其中SRes(r_comj,r_stoj)表示第j个微服务启动一个实例需要耗费的计算资源r_comj和存储资源r_stoj;用户集合表示为Users={u1,u2,...,uM},M为用户的数量,第q个用户表示为uq=(UReq(Sq(sp,..,sk)),ULoc(u_latq,u_lonq)),q∈[1,M],0<p<k<K,其中,UReq(Sq(sp,..,sk))表示第q个用户对于微服务组合的请求需求,ULoc(u_latq,u_lonq)表示服务当前所处的位置信息经度u_latq和纬度u_lonq;微服务数量向量表示为Strategy(RC,MS),Strategy(RC,MS)=[rc1(x11,...,x1K),rc2(x21,...,x2K),...,rcN(xN1,...,xNK)]T其中,rci(xi1,...,xiK)表示微服务MS在资源中心i中的组合运行策略;
计算资源空闲率f1(x)的计算公式为:
其中rci(xi1,...,xiK)表示在第i个资源中心实际启动的微服务数量向量,SRes(r_com1,...,r_comK)表示微服务实际消耗的计算资源数值向量,RRes(r_comi)表示第i个资源中心的计算资源值;
存储资源的空闲率f2(x)的计算公式为:
SRes(r_sto1,...,r_stoK)表示微服务实际消耗的存储资源数值向量,RRes(r_stoi)表示第i个资源中心的存储资源值;
微服务的实际空闲率f3(x)计算公式为:
其中muj代表微服务允许的最大服务用户数量,ServAbility(xij,muj)的计算公式为:
RealUserNum(sj,rci)是微服务sj在资源中心rci中实际
的服务用户数量;
计算负载均衡率f4(x)的计算公式为:
其中,
存储负载均衡率f5(x)的计算公式为:
其中,
4.根据权利要求3所述的微服务组合部署与调度方法,其特征在于,所述的完备性约束g1(x),即必须保证所有的微服务至少启动一个实例,要求:
g1(x):xij≥1,1≤i≤N,1≤j≤K;
计算资源总量约束g2(x),即每个资源中心服务实例运行所占用的计算资源总量不能超过其拥有总量,要求:
g2(x):rci(xi1,...,xiK)·SRes(r_sto1,...,r_stoK)T<RRes(r_stoi),1≤i≤N;
存储资源总量约束g3(x),即每个资源中心服务实例运行所占用的存储资源总量不能超过其拥有总量,要求:
g3(x):rci(xi1,...,xiK)·SRes(r_com1,...,r_comK)T<RRes(r_comi),1≤i≤N;
服务序列总量约束g4(x),即所有已经启动的微服务实例的服务总量要大于用户对于微服务的需求总量,要求:
其中,UserReq(ui,sj)表示第i个用户是否请求了服务sj,如果是,则返回1,如果没有,则返回0;
对于解空间决策向量x∈Ω,表示为:
所述的多目标优化模型表示如下:
5.根据权利要求3或4所述的微服务组合部署与调度方法,其特征在于,RealUserNum(sj,rci)即微服务sj在资源中心rci中实际的服务用户数量的计算采用基于距离优先的服务选择算法,对于每一个用户而言,首先按照位置最近原则,寻找最近可用的微服务,判断该微服务是否达到了最大服务负载,如果没有,请求使用该服务;否则,则进一步按照最近距离原则搜索最近的服务,直到该用户发现可用的微服务,其计算步骤如下:
初始化每个资源中心运行的服务数量和剩余的用户数量参数以及已经服务的用户数组;
初始化资源中心的实际微服务启动向量realMicroServicesStart、资源中心的剩余资源向量remMicSerAbility、资源中心服务列表userServiced;
遍历每一个用户,寻找最合适的资源中心服务:对于用户服务请求列表中的服务请求,初始化每个资源中心的访问标识;
根据用户位置递归寻找最近的满足条件的资源服务中心,如果寻找到了,继续寻找下一个服务;如果没有,则返回false;
当所有用户的所有服务都在资源中心找到服务提供者以后,返回true。
6.根据权利要求3或4所述的微服务组合部署与调度方法,其特征在于,NSGA-III对模型进行求解的过程中,种群选择策略采用在NSGA种群选择机制基础上,增加候补解集的填充选择机制,其步骤包括:首先采用NSGA-III主导选择机制在一组解上运行;然后对所有解进行分层,将完全支配解的层级设置为第一层;删除已经访问过的解,取出非最佳解决方案,将其级别设置为第二级,重复操作;当解的非支配平相同时,即在同一级中进行选择时,比较解的拥挤距离,选择具有大拥挤距离的解;构建候补解来存储前m代的被放弃较好支配解,根据前m代被淘汰解候补集;将候补群放入当前群中执行交叉变异策略,剩余的交叉变异策略与NSGAIII中的保持一致。

说明书全文

多目标优化下的微服务组合部署与调度方法

技术领域

[0001] 本发明属于高性能计算服务领域,具体涉及多目标优化下的微服务组合部署与调度方法。

背景技术

[0002] 微服务是SOA架构发展与云技术发展与应用到一定成熟阶段的产物,传统的单体应用存在诸多缺点,尤其是针对分布在不同地域、不同业务需求的大量用户并发条件下,单体应用的扩展性、容错性、稳定性和抗毁性显然已经无法满足移动互联网中大规模分布式用户并发需求。微服务将传统的单体应用进行服务拆分,按照业务和功能需求从横向或者纵向分解成为相互独立的微型服务。每个服务都能够单独的运行多个实例,服务之间尽可能的逻辑独立。微服务具备灵活性、可扩展性以及高可用性的特点,灵活性是各个服务实例能够根据网络通信开销、计算和存储资源开销等因素,灵活在多个服务器或者云资源中心部署;扩展性是根据能够根据用户的并发需求灵活的启动和关闭实例,并且这些启动和关闭可以是针对某个专用的服务模,比如在电子商务微服务中,某个特定时间,用户支付业务并发量突然增加,只需增加支付业务微服务的服务数量来满足用户并发需求,而不必像传统单体应用那样必须对整个业务线服务进行同时扩展,这样灵活的扩展机制在能够节省资源的同时,为用户提供高并发的服务;高可用性是微服务的又一典型特征,由于微服务启动实例所需资源相对较小,每个服务可以同时启动多个实例,在资源有限的条件下,能够对某些关键服务进行多服务热备操作,从而使得整个应用具备很强的稳定性。因此,由于微服务具备以上特点,在移动互联网以及物联网条件下,是解决用户和接入设备数量巨大以及海量并发请求的有效手段。
[0003] 在微服务带来强大的灵活扩展和稳定应用的同时,也存在急需解决的问题。其中最为关键的一个问题就是服务的组合部署与调度优化问题。其问题主要描述如下:多个地点的多个微服务实例需要启动,为分布在广域空间的大量用户提供服务,如何在充分考虑硬件资源、服务延时以及服务可靠性的前提下,为多个服务中心配置和调度不同微服务或者微服务组合的启动和运行策略,就是该问题的核心。目前关于微服务的组合调度方法的研究还比较少。仅有的一些微服务的组合调度策略都是从服务端与用户端之间的中间层的资源分配与接收最优化度出发。由于微服务可以灵活的启动或者停止服务实例,因此对于服务端的微服务组合运行策略的研究同样非常重要。高效实用的微服务组合部署与调度方法的提出,对于提高以微服务为基础的各类网络应用服务的可用性、实时性和灵活性具有非常重大的帮助。

发明内容

[0004] 本发明的目的在于提供多目标优化下的微服务组合部署与调度方法,用于解决微服务的部署和调度过程中,涉及的目标函数众多,约束复杂,对结果的计算要求实时性强,且性能指标高的问题。基于上述目的,提供了一种基于嵌入式特征选择的冷启动项目推荐方法,包括以下步骤:
[0005] 步骤1,获取资源中心属性数据、微服务属性数据和用户属性数据;
[0006] 步骤2,建立微服务组合部署与调度的多目标优化模型,模型表示如下[0007]
[0008] 其中F(x)为该模型的目标函数,h表示子目标函数的个数,gi(x)表示不等式约束条件,m表示不等式约束的个数,hj(x)表示等式约束条件,n表示等式约束条件的个数;
[0009] 步骤3,采用改进的多目标优化算法NSGA-III对所述的多目标优化模型进行求解,计算出每一个资源中心需要启动的微服务数量向量;
[0010] 步骤4,根据所述的微服务数量向量对资源中心的微服务进行部署和调度。
[0011] 进一步地,所述资源中心属性数据包括资源中心集合,以及每一个资源中心的资源信息和位置信息,所述的资源信息包括计算资源信息和存储资源信息,所述的位置信息包括所述资源中心的经度和纬度;所述的微服务属性关数据包括微服务集合,以及每一个微服务启动一个实例所需要的计算资源和存储资源;所述的用户属性数据包括用户集,以及每一个用户的服务请求信息和位置信息;模型的目标函数F(x)中子目标函数,包括计算资源空闲率最小化、存储资源的空闲率最小化、微服务的实际空闲率最小化、计算负载均衡率最小化和存储负载均衡率最小化;约束条件包括服务的完备性约束、计算资源总量约束、存储资源总量约束和服务序列总量约束。
[0012] 进一步地,资源中心集表示为RC={rc1,rc2,...,rcN},N为资源中心的数量,第i 个资源中心的信息表示为rci=(RRes(r_comi,r_stoi),RLoc(r_lati,r_loni)),其中i∈[1,N], RRes(r_comi,r_stoi)表示第i个资源中心包含计算资源r_comi和存储资源r_stoi, RLoc(r_lati,r_loni)表示第i个资源中心所处的位置信息经度r_lati和纬度r_loni;微服务集合表示为MS={s1,s2,...,sK},K为微服务的种类数量,第j个微服务表示为 sj=(SRes(r_comj,r_stoj)),j∈[1,K],其中SRes(r_comj,r_stoj)表示第j个微服务启动一个实例需要耗费的计算资源r_comj和存储资源r_stoj;用户集合表示为 Users={u1,u2,...,uM},M为用户的数量,第q个用户表示为: uq=(UReq(Sq(sp,..,sk)),ULoc(u_latq,u_lonq)),q∈[1,M],0<p<k<K,其中,UReq(Sq(sp,..,sk)) 表示第q个用户对于微服务组合的请求需求,ULoc(u_latq,u_lonq)表示服务当前所处的位置信息经度u_latq和纬度u_lonq;微服务数量向量表示为Strategy(RC,MS),Strategy(RC,MS)=[rc1(x11,...,x1K),rc2(x21,...,x2K),...,rcN(xN1,...,xNK)]T其中,rci(xi1,...,xiK)表示微服务MS在资源中心i中的组合运行策略;
[0013] 计算资源空闲率f1(x)的计算公式为:
[0014]
[0015] 其中rci(xi1,...,xiK)表示在第i个资源中心实际启动的微服务数量向量, SRes(r_com1,...,r_comK)表示微服务实际消耗的计算资源数值向量,RRes(r_comi)表示第i个资源中心的计算资源值;
[0016] 存储资源的空闲率f2(x)的计算公式为:
[0017]
[0018] SRes(r_sto1,...,r_stoK)表示微服务实际消耗的存储资源数值向量,RRes(r_stoi) 表示第i个资源中心的存储资源值;
[0019] 微服务的实际空闲率f3(x)计算公式为:
[0020]
[0021] 其中muj代表微服务允许的最大服务用户数量,ServAbility(xij,muj)的计算公式为: RealUserNum(sj,rci)是微服务sj在资源中心rci中实际的服务用户数量;
[0022] 计算负载均衡率f4(x)的计算公式为:
[0023]
[0024] 其中,
[0025]
[0026] 存储负载均衡率f5(x)的计算公式为:
[0027]
[0028] 其中,
[0029]
[0030] 进一步地,完备性约束g1(x),即必须保证所有的微服务至少启动一个实例,要求:
[0031] g1(x):xij≥1,1≤i≤N,1≤j≤K;
[0032] 计算资源总量约束g2(x),即每个资源中心服务实例运行所占用的计算资源总量不能超过其拥有总量,要求:
[0033] g2(x):rci(xi1,...,xiK)·SRes(r_sto1,...,r_stoK)T<RRes(r_stoi),1≤i≤N;
[0034] 存储资源总量约束g3(x),即每个资源中心服务实例运行所占用的存储资源总量不能超过其拥有总量,要求:
[0035] g3(x):rci(xi1,...,xiK)·SRes(r_com1,...,r_comK)T<RRes(r_comi),1≤i≤N;
[0036] 服务序列总量约束g4(x),即所有已经启动的微服务实例的服务总量要大于用户对于微服务的需求总量,要求:
[0037]
[0038] 其中,UserReq(ui,sj)表示第i个用户是否请求了服务sj,如果是,则返回1,如果没有,则返回0;
[0039] 对于解空间决策向量x∈Ω,表示为:
[0040]
[0041] 所述的多目标优化模型表示如下:
[0042]
[0043] 具体地,RealUserNum(sj,rci)即微服务sj在资源中心rci中实际的服务用户数量的计算采用基于距离优先的服务选择算法,对于每一个用户而言,首先按照位置最近原则,寻找最近可用的微服务,判断该微服务是否达到了最大服务负载,如果没有,请求使用该服务;否则,则进一步按照最近距离原则搜索最近的服务,直到该用户发现可用的微服务,其计算步骤如下:
[0044] 初始化每个资源中心运行的服务数量和剩余的用户数量参数以及已经服务的用户数组;
[0045] 初始化资源中心的实际微服务启动向量realMicroServicesStart、资源中心的剩余资源向量remMicSerAbility、资源中心服务列表userServiced;
[0046] 遍历每一个用户,寻找最合适的资源中心服务:对于用户服务请求列表中的服务请求,初始化每个资源中心的访问标识;
[0047] 根据用户位置递归寻找最近的满足条件的资源服务中心,如果寻找到了,继续寻找下一个服务;如果没有,则返回false;
[0048] 当所有用户的所有服务都在资源中心找到服务提供者以后,返回true。
[0049] 进一步地,NSGA-III对模型进行求解的过程中,种群选择策略采用在NSGA 种群选择机制基础上,增加候补解集的填充选择机制,其步骤包括:首先采用NSGA-III主导选择机制在一组解上运行;然后对所有解进行分层,将完全支配解的层级设置为第一层;删除已经访问过的解,取出非最佳解决方案,将其级别设置为第二级,重复操作;当解的非支配平相同时,即在同一级中进行选择时,比较解的拥挤距离,选择具有大拥挤距离的解;构建候补解来存储前 m代的被放弃较好支配解,根据前m代被淘汰解候补集;将候补群放入当前群中执行交叉变异策略,剩余的交叉变异策略与NSGAIII中的保持一致。
[0050] 本发明首次将NSGA-III算法引入到了微服务的组合调度问题中,并且对 NSGA-III进行适当的改进,使得该算法能够更加适用于微服务组合调度问题求解。具体地,本发明首先深入分析资源中心集合、微服务集合、用户集合以及微服务实例组合运行策略等相关实体的属性,其次,详细构建了微服务的组合调度问题的多目标优化模型,包括五个子目标函数和四个约束条件,再次,采用改进的NSGA-III算法对模型进行求解,获得多组帕累托最优解,最后,在实验中验证了帕累托最优解的组合调度策略比传统部署策略在资源中心计算存储资源、负载均衡率以及服务实际使用率均有较大提升。附图说明
[0051] 图1为本发明实施例的微服务组合调度问题的示意图;
[0052] 图2为本发明实施例的微服务组合部署与调度方法的流程示意图;
[0053] 图3为本发明实施例的不同数据集中的时间性能对比图;
[0054] 图4为本发明实施例的计算、存储资源以及服务实际空闲率函数的帕累托前沿解三维图;
[0055] 图5为本发明实施例的计算负载均衡率、存储资源以及服务实际空闲率函数的帕累托前沿解三维图;
[0056] 图6为本发明实施例的计算、存储负载均衡率以及服务实际空闲率函数的帕累托前沿解三维图。

具体实施方式

[0057] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0058] 本发明中涉及到资源中心(Resource  Centers,RC)、微服务集合 (MircoServices,MS)、用户集合(Users,U)、微服务实例组合运行策略等几个名词,首先对这几个名词的定义及其属性进行说明。
[0059] 本发明的资源中心是能够为微服务的实例启动和运行提供环境的实体,包含分布在不同位置的计算和存储资源。空间中存在N个资源中心表示为RC={rc1,rc2,...,rcN},每个资源中心包含两类信息:资源信息和位置信息, rci=(RRes(r_comi,r_stoi),RLoc(r_lati,r_loni)),i∈[1,N],其中RRes(r_comi,r_stoi)表示第i个资源中心包含的计算资源r_comi和存储资源r_stoi。为了便于模型计算求解,这里的计算和存储资源全部归一量化为某一个特定的实数值,RLoc(r_lati,r_loni)表示第i个资源中心所处的位置经纬度。
[0060] 本发明的服务集合特指某一个单体应用经过逻辑拆分以后的微服务集合。其符号化描述如下:MS={s1,s2,...,sK}表示单体应用MS拆分为K个功能相互独立的微服务,第j个微服务表示为sj=(SRes(r_comj,r_stoj)),j∈[1,K],SRes(r_comj,r_stoj) 表示第j个微服务启动一个实例需要耗费计算资源r_comj和存储资源r_stoj。
[0061] 本发明的用户集合特指微服务的服务消费者集合,每个用户可能会使用某一个微服务或者某几个微服务的服务序列,用户之间是相对独立的个体。用户集合表示为Users={u1,u2,...,uM},M为用户的数量,每个用户也包含两类信息,服务请求信息和位置信息,uq=(UReq(Sq(sp,..,sk)),ULoc(u_latq,u_lonq)), q∈[1,M],0<p<k<K,其中,UReq(Sq(sp,..,sk))表示第q个用户对于微服务组合的请求需求,ULoc(u_latq,u_lonq)表示服务当前所处的位置。
[0062] 对于N个资源中心RC={rc1,rc2,...,rcN},以及拟运行的微服务MS={s1,s2,...,sK}而言,其微服务实例组合运行策略用Strategy(RC,MS)表示,其数学表达式如下: TStrategy(RC,MS)=[rc1(x11,...,x1K),rc2(x21,...,x2K),...,rcN(xN1,...,xNK)]其中,rc1(x11,...,x1K)表示微服务MS在资源中心1中的组合运行策略。
[0063] 由此,微服务组合调度问题如图1所示,在空间中分布着多个资源中心 (RC),每个资源中心有计算和存储两种资源。每启动一个微服务实例会耗费一定的资源。同时,空间中还分布了大量的服务用户,每个用户会使用一个或多个微服务的组合。微服务的组合调度问题实际上就是在给定的资源中心、微服务集合以及用户需求的前提下,寻求微服务实例在个资源中心的启动和运行策略,使得在同时考虑节省资源和资源中心负载均衡的同时,能够为用户提供高效快捷的服务。
[0064] 本发明的多目标优化下的微服务组合部署与调度方法,如图2所示,包括以下步骤:
[0065] 步骤1,获取资源中心相关数据、微服务相关数据和用户相关数据;
[0066] 步骤2,建立微服务组合部署与调度的多目标优化模型;
[0067] 步骤3,采用改进的多目标优化算法NSGA-III对所述的多目标优化模型进行求解,计算出每一个资源中心需要启动的微服务数量向量;
[0068] 步骤4,根据所述的微服务数量向量对资源中心的微服务进行部署和调度。
[0069] 微服务的组合调度问题的多目标优化模型如下:
[0070] 假设在空间区域内,存在N个资源中心RC={rc1,rc2,...,rcN},K个功能相互独立的微服务MS={s1,s2,...,sK},以及M个用户Users={u1,u2,...,uM},决策向量为 x=Strategy(RC,MS)为自变量的连续搜索空间。为了便于算法编码,本发明将原始模型决策向量从二维向量压缩为一维变量。模型总体描述见下式。
[0071]
[0072] 其中F(x)为该模型的目标函数,gi(x)和hj(x)表示两种不同类型的约束条件。基于多目标优化的微服务组合调度模型一共有五个子目标函数,计算以及存储资源利用效率,微服务实际空闲率、微服务负载总方差以及用户服务完整性。下面对这五个子目标函数进行建模。
[0073] 第一个子目标函数就是计算资源空闲率,记为f1(x)。
[0074]
[0075] 其中rci(xi1,...,xiK)表示在第i个资源中心实际启动的微服务数量向量, SRes(r_com1,...,r_comK)表示微服务实际消耗的计算资源数值向量,RRes(r_comi)表示第i个资源中心的计算资源值。
[0076] 类似的,第二个子目标函数存储资源的空闲率计算方式f2(x)如下。
[0077]
[0078] 第三个子目标函数是微服务的实际空闲率f3(x)。一般来讲,启动一个微服务实例可以为若干个服务请求提供服务。当服务请求数量超过单个微服务实例的最大负载,则需要启动新的实例来提供有效服务。假设每个微服务可以允许的最大服务用户数量向量(微服务最大负载向量)为MSMaxUsers=[mu1,mu2,...,muK]。微服务实例一旦启动,则希望该微服务能够得到充分使用,这样才不会浪费资源,否则可以选择不启动该微服务实例。
[0079] 关于微服务的实际空闲率f3(x)计算公式如下。
[0080]
[0081]
[0082] 需要特别说明的是,这里的RealUserNum(sj,rci)是微服务sj在资源中心rci中实际的服务用户数量,后面会详细描述其计算法方法。
[0083] 在这种用户的服务发现策略前提下,由于在本发明中寻求的可行解必须满足约束条件,用户一定会发现至少一个可用的微服务,与此同时,每个资源中心启动的微服务实例也能够获取到自己所要服务的用户数量RealUserNum(sj,rci)。
[0084] 第四个子目标函数是对资源中心的计算负载均衡率f4(x),资源中心的负载均衡指标主要是衡量多个资源中心在运行过程中能够保持均衡的程度。不能出现有的资源中心长期保持高负荷运转状态,而有的资源中心却一直处于闲置状态。
[0085] 负载均衡率f4(x)的计算方式如下。
[0086]
[0087]
[0088]
[0089] 第五个子目标函数是对资源中心存储负载均衡率f5(x),存储负载均衡率用来衡量资源中心的存储使用情况。一般来讲,由于各个资源中心之间存在或多或少的数据同步任务,数据存储量较大的资源中心可能会向数据量较小的资源中心同步或者转移数据,占用大量的通信资源,可能造成服务的拥堵。因此,为了减小数据同步开销,在服务部署和运行的时候就应当考虑到资源中心的存储负载均衡。
[0090] 存储的负载均衡计算方式如f5(x)。
[0091]
[0092]
[0093]
[0094] 在所述的多目标优化模型中存在结果约束条件,详细描述如下。
[0095] 第一个约束条件g1(x)是服务的完备性约束,即必须保证所有的微服务至少启动一个实例。数学表达式如下:
[0096] g1(x):xij≥1,1≤i≤N,1≤j≤K
[0097] 第二个约束条件g2(x)是计算资源总量约束,即每个资源中心服务实例运行所占用的计算资源总量不能超过其拥有总量。即:
[0098] g2(x):rci(xi1,...,xiK)·SRes(r_sto1,...,r_stoK)T<RRes(r_stoi),1≤i≤N[0099] 第三个约束条件g3(x)是存储资源总量约束,即每个资源中心服务实例运行所占用的存储资源总量不能超过其拥有总量。即:
[0100] g3(x):rci(xi1,...,xiK)·SRes(r_com1,...,r_comK)T<RRes(r_comi),1≤i≤N[0101] 第四个约束条件是服务序列总量约束,即所有已经启动的微服务实例的服务总量要大于用户对于微服务的需求总量。表达式如下:
[0102]
[0103] 其中,UserReq(ui,sj)表示第i个用户是否请求了服务sj,如果是,则返回1,如果没有,则返回0。
[0104] 所述的多目标优化模型描述如下:
[0105] 假设微服务集合O={o1,o2,...,oK},对于解空间决策向量x∈Ω,[0106]
[0107]
[0108] 本发明采用多目标优化算法NSGA-III对该模型进行求解。NSGA-III具备快速收敛到最优解、有效应对4个以上目标的优化问题等优点,非常适合于本发明中的微服务组合调度策略问题求解。下面详细阐述算法求解过程。
[0109] 本发明采用二进制编码规则,编码的长度跟每个资源中心能够启动的微服务实例最大数量来决定。假设每个资源中心能够最大允许启动某一个微服务实例为16。因此用四位二进制编码就可以表达某一个资源中心启动的某一个微服务实例的数量。显然,该二进制编码的总长度为4×N×K。
[0110] 前面中提到的RealUserNum(sj,rci)用户服务策略采用基于距离优先的服务选择算法,对于每一个用户而言,首先按照位置最近原则,寻找最近可用的微服务,判断该微服务是否达到了最大服务负载,如果没有,请求使用该服务;否则,则进一步按照最近距离原则搜索最近的服务,直到该用户发现可用的微服务。
[0111] 其计算过程如下,见表1中的Algorithm 1:初始化每个资源中心运行的服务数量和剩余的用户数量参数以及已经服务的用户数组,第1行;初始化资源中心的实际微服务启动向量realMicroServicesSt、资源中心的剩余资源向量 remMicSerAbili、资源中心服务列表userServiced,见第2-6行;接下来遍历每一个用户,寻找最合适的资源中心服务:对于用户服务请求列表中的服务请求,初始化每个资源中心的访问标识,见8-9行;根据用户位置递归寻找最近的满足条件的资源服务中心,如果寻找到了,继续寻找下一个服务;如果没有,则返回false,见10-13行。当所有用户的所有服务都在资源中心找到服务提供者以后,返回true。
[0112] 表1
[0113]
[0114]
[0115] 其中findNeaSerbyLo(mSer,user,cLs)函数的实现过程见表2中Algorithm 2。其基本流程为:首先根据用户的位置寻找没有访问过的最近的资源中心。使用 findNeSerbyLo(user.location)函数返回值初始化参数neLoCenter。findNeSerbyLo(user.location)函数是根据用户的位置寻找没有访问过的最近的具有资源服务能的资源中心,返回资源中心的序号;如果返回-1,则表示所有资源中心都已经访问过了,没有解,返回false,见2-3行;然后判断该资源中心是否存在与用户需求匹配的可用服务。如果该服务数量大于等于1,将该用户放入到服务用户列表,将该资源中心的可用服务数量列表更新,见3-6行;否则将该资源中心的访问标识改为1,递归寻找该用户最近的服务,见9-11行。
[0116] 表2
[0117]
[0118]
[0119] 本发明采取的种群选择策略采用在NSGA种群选择机制基础上,增加候补解集的填充选择机制。在对种群的选择中,除了对支配解的保留,加上低非支配水平的解的候补机制。首先采用NSGA-III主导选择机制在一组解上运行;然后对所有解进行分层,将完全支配解的层级设置为第一层;删除已经访问过的解,取出非最佳解决方案,将其级别设置为第二级,重复操作。同时,当解的非支配水平相同时,即在同一级中进行选择时,比较解的拥挤距离,选择具有大拥挤距离的解。构建候补解来存储前m代的被放弃较好支配解(m为参数),根据前m代被淘汰解候补集。在求解过程中,将候补群放入当前群中执行交叉变异策略。剩余的交叉变异策略与NSGAIII中的保持一致。下面对算法实验效果进行评估。
[0120] 本实验用户数据采用两个真实数据集,一个是纽约社交网络用户CheckIn 数据集,用来模拟在空间中存在的不同用户同时对数据中心进行服务请求,另一个是东京社交网络用户CheckIn数据集。微服数据采用一个典型的数据应用服务系统,一个单体应用系统拆分为用户中心微服务、报表中心微服务、管理员中心微服务、军用GIS微服务、报文传输微服务、数据质量审核微服务、数据采集微服务、数据综合维护与管理微服务、数据可视化展现组件微服务以及权限控制微服务等10个与数据应用紧密相关的微服务。
[0121] 实验参数说明:假设在纽约(NYC数据集)和东京(TKY数据集)各存在 5个资源中心专用于数据服务微服务系统的运行,每个资源中心具备3000 个单位的计算资源和3000个单位的存储资源;每个微服务启动1个实例需要消耗2个单位的计算资源和1个单位的存储资源,能够同时为100个用户提供服务;
[0122] 本发明实施例采用NSGA-III对微服务组合调度问题进行求解,其实验参数取值如表3:
[0123] 表3:进化多目标算法变量参数取值
[0124]
[0125]
[0126] 本发明实施例所采用的实验背景为:电脑主要配置为:Pentium(R) Dual-core 3.06CPU,4G RAM内存。
[0127] 在以上实验数据与参数的取值下,采用多目标优化算法对该问题进行求解,结果分析如下:
[0128] 首先该问题求解能够较好的收敛到帕累托前沿,从不同的用户量角度,评估求解算法的时间性能。不同数据集中的时间性能对比如图3所示,可以看出,随着用户数量的增加,算法的计算时间基本呈线性增加。因此,该方法可以用于以并发用户量较大为特征的移动互联网的微服务优化场景中。从时间维度,该算法可以在110秒能对NYC和TKY两个数据集中的2000个用户的微服务组合调度策略进行求解,给出多个资源中心分别启动微服务的实例数量,因此是可行的。下面对求解效果进行分析。
[0129] 取2000个固定用户,对NYC数据集计算结果取帕累托前沿解效果如图4 至图6,图4示出计算、存储资源以及服务实际空闲率函数的帕累托前沿解,图5展示计算负载均衡率、存储资源以及服务实际空闲率函数的帕累托前沿解,图6展示计算、存储负载均衡率以及服务实际空闲率函数的帕累托前沿解。
[0130] 从以图4至图6中可以看出,算法较好的寻求到了帕累托最优前沿,从而生成了微服务组合调度策略,为微服务的实例部署和应用提供决策支持。
[0131] 最优前沿解中挑选几组解对比传统的没有经过多目标函数优化的微服务部署策略,其结果可知,在传统的微服务组合调度策略下,采用固定平均启动服务实例的调度策略,在全部满足用户服务请求的约束下,其资源空闲率相对较高,微服务的实际使用率偏低。传统微服务组合调度策略的计算、存储资源空闲率比经过多目标函数优化要分别高出13.21%和5.2%,而微服务实际空闲率则要高出16.67%,由此,基于多目标优化的微服务组合调度策略也明显具有较好的服务性能。
[0132] 在基于多目标优化的微服务组合调度策略之间进行对比。也可以知道不同的帕累托最优解,可以获得不同的组合调度效果,比如在有的策略中每个微服务在不同资源中心的启动数量差异较大,因此负载均衡指标较差,而计算和存储资源的利用率较好。反之,在其他策略中各个服务之间的启动负载较为均衡,但是资源的实际利用率较低。
[0133] 本发明实施例首次将NSGA-III算法引入到了微服务的组合调度问题中,并且对NSGA-III进行适当的改进,使得该算法能够更加适用于微服务组合调度问题求解,通过实验对算法时间效率、解收敛程度以及计算效果多个方面进行综合评估,证明引入NSGA-III对问题的求解能够取得很好效果。
[0134] 由发明内容和实施例可知,本发明多目标优化下的微服务组合部署与调度方法,首先,深入分析资源中心集合、微服务集合、用户集合以及微服务实例组合运行策略等相关实体的属性,其次,详细构建了微服务的组合调度问题的多目标优化模型,包括五个子目标函数和四个约束条件,再次,采用改进的 NSGA-III算法对模型进行求解,获得多组帕累托最优解,最后,在实验中验证了帕累托最优解的组合调度策略比传统部署策略在资源中心计算存储资源、负载均衡率以及服务实际使用率均有较大提升。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈