一种分布式的微服务调度优化方法技术

技术编号:36689672 阅读:19 留言:0更新日期:2023-02-27 19:55
一种分布式的微服务调度优化方法,包括以下步骤;步骤1:将第t个调度任务所处的环境建模为四元组,用以描述该时刻微服务实例在分布式环境实例中的部署情况;步骤2:将第t个调度任务的动作建模为二元组,用以描述该时刻微服务被部署到节点;步骤3:将动作完成后和完成前所有服务的服务时延的差值和资源均衡性的差值之和用于奖励描述;步骤4:进行训练,得到微服务实例调度优化方案的预测模型;步骤5:使用预测模型进行预测,得到相应的调度优化方案。本发明专利技术将服务之间、服务与数据之间、服务与用户之间的依赖引入微服务调度约束,并利用了强化学习的持续优化能力,是一种适应于分布式场景,具有持续优化能力的微服务调度优化方法。具有持续优化能力的微服务调度优化方法。具有持续优化能力的微服务调度优化方法。

【技术实现步骤摘要】
一种分布式的微服务调度优化方法


[0001]本专利技术属于微服务调度优化
,特别涉及一种分布式的微服务调度优化方法。

技术介绍

[0002]在分布式服务场景中,微服务已不单单部署在云上,在边和端上也会根据需求部署各类服务。这种微服务的分布式部署方式会给调度带来一定难度。
[0003]第一,由于微服务通常具有功能单一的特点,微服务之间相互协同才能对外提供服务,所以各个微服务之间的调用普遍存在。若这种微服务之间的数据调用频繁发生,则会增加服务响应时间,影响服务性能。
[0004]第二,数据是服务的核心,服务与数据之间的依赖普遍存在,若由于数据规模大、数据安全性等因素导致数据无法移动,与数据具有依赖关系的服务的部署位置就不能随意部署,若部署位置不恰当,很可能导致服务延时增加,甚至会导致服务无法执行。
[0005]第三,若用户受到管理域的限制,服务与用户之间的距离会增加数据的传输时间,所以也应该约束服务的部署位置。
[0006]总之,在分布式场景中,微服务、数据和用户的部署位置都不是任意的,微服务的调度需要考虑服务与服务、服务与数据、用户与服务之间的依赖约束。然而,目前的微服务调度大多只考虑了云上的服务调度,通常会以资源中心、微服务、用户作为实体,约束包括资源约束,均衡性约束等,并没有将服务之间、服务与数据之间、服务与用户之间的依赖作为影响调度的因素。此外,目前的微服务调度方法基本采用的是一次训练,多次应用的方式运行,不具备持续优化的能力。

技术实现思路

[0007]为了克服以上技术问题,本专利技术的目的在于提供一种分布式的微服务调度优化方法,该方法将服务之间、服务与数据之间、服务与用户之间的依赖引入微服务调度约束,并利用了强化学习的持续优化能力,是一种适应于分布式场景,具有持续优化能力的微服务调度方法。
[0008]为了实现上述目的,本专利技术采用的技术方案是:
[0009]一种分布式的微服务调度优化方法,包括以下步骤;
[0010]步骤1:基于微服务实例、分布式环境实例、微服务在分布式环境中的部署位置,将第t个调度任务所处的环境建模为四元组,用以描述该时刻微服务实例在分布式环境实例中的部署情况;
[0011]步骤2:将第t个调度任务的动作建模为二元组,用以描述该时刻微服务s
i
被部署到节点n
j

[0012]步骤3:以低服务延时,高资源均衡性为目标,将动作完成后和完成前所有服务的服务时延的差值和资源均衡性的差值之和用于奖励描述;
[0013]步骤4:将环境E
t
=(t,S,N,SN),其中t为大于0的自然数,表示第t个微服务调度优化任务,S为由所有微服务实例描述信息构成的向量,N为有云环境实例中所有节点描述信息构成的向量,SN为由以微服务实例编号作为第一元,节点编号作为第二元的序偶构成的向量;动作a
t
=(s
i
,n
j
),其中s
i
为微服务实例编号,n
j
为s
i
被部署到的节点的编号;奖励r
t
=(g
t+1

g
t
)

(avgT
t+1

avgT
t
),其中g
t
和g
t+1
分别为动作a
t
执行前后的资源均衡性,avgT
t
和avgT
t+1
分别为动作a
t
执行前后的服务时延,输入DDPG模型,进行训练,得到微服务实例调度优化方案的预测模型;
[0014]步骤5:使用训练得到的微服务实例调度优化方案预测模型对微服务实例在云环境实例中的调度优化方案进行预测,得到相应的调度优化方案,用于解决在确保云环境实例具有高资源均衡性、低服务延时的前提下,将微服务实例部署到云环境实例的节点中的技术问题。
[0015]所述步骤1具体为:
[0016]环境描述:将第t个微服务调度优化任务所处的环境状态E
t
定义为四元组,E
t
=(t,S,N,SN),其中,t为调度优化任务序号;S为表示当前服务的向量,即S={s1,s2,

,s
i
,

,s
n
};N为表示当前节点的向量,即N={n1,n2,

n
j
,

n
m
};SN为表示当前的服务部署方案的向量,即SN=(<s
s1
,n
n1
>,<s
s2
,n
n2
>,

<s
sk
,n
nk
>,

<s
sNum
,n
nNum
>),其中,每个元素为序偶<s
sk
,n
nk
>,表示服务s
sk
被部署到节点n
nk
上。
[0017]所述步骤2具体为:
[0018]动作描述:将第t个微服务调度优化任务的动作定义为在当前优化调度任务中,执行将服务部署到节点的操作a
t
=(s
i
,n
j
),即服务s
i
被部署到节点n
j
上,其中,n
j
的选择要符合服务依赖、数据依赖和用户依赖约束的限制,面向分布式服务环境。
[0019]所述服务的调度约束设计如下:
[0020]服务依赖:微服务的功能相对独立,在分布式环境下,用户需求是复合的,微服务需要通过相互协同来满足用户需求,通过分析微服务之间的调用关系,从微服务的链路数据提取各种强度的服务依赖,用以约束动作集,具体的,从微服务调用链路数据中统计得到服务之间调用关系的次数,再将服务之间调用次数除以服务单位时间内总的调用次数作为服务依赖的强度,此后,在待部署服务与其他服务具有强服务依赖关系时,优先选择强依赖服务所在或者相邻节点;
[0021]数据依赖:数据是服务的核心要素,所以数据依赖被用于限定动作集,数据源的位置可以通过先验知识获取,服务与数据源的依赖关系通过业务流程描述文件的解析获取,采用矩阵描述,矩阵的行表示服务所在节点编号,矩阵的列表示数据所在节点编号,若服务与数据之间存在依赖,则以服务所在节点编号和数据所在节点编号为下标的元素为1,否则为0,此后,在待部署服务与数据具有依赖关系时,优先选择数据所在或者相邻节点;
[0022]用户依赖:用户是调用服务的主体,所以用户依赖被本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式的微服务调度优化方法,其特征在于,包括以下步骤;步骤1:基于微服务实例、分布式环境实例、微服务在分布式环境中的部署位置,将第t个调度任务所处的环境建模为四元组,用以描述该时刻微服务实例在分布式环境实例中的部署情况;步骤2:将第t个调度任务的动作建模为二元组,用以描述该时刻微服务s
i
被部署到节点n
j
;步骤3:以低服务延时,高资源均衡性为目标,将动作完成后和完成前所有服务的服务时延的差值和资源均衡性的差值之和用于奖励描述;步骤4:将环境、动作和奖励输入DDPG模型,进行训练,得到微服务实例调度优化方案的预测模型;步骤5:使用训练得到的微服务实例调度优化方案预测模型对微服务实例在云环境实例中的调度优化方案进行预测,得到相应的调度优化方案。2.根据权利要求1所述的一种分布式的微服务调度优化方法,其特征在于,所述步骤1具体为:环境描述:将第t个微服务调度优化任务所处的环境状态E
t
定义为四元组,E
t
=(t,S,N,SN),其中,t为调度优化任务序号;S为表示当前服务的向量,即S={s1,s2,

,s
i
,

,s
n
};N为表示当前节点的向量,即N={n1,n2,

n
j
,

n
m
};SN为表示当前的服务部署方案的向量,即SN=(<s
s1
,n
n1
>,<s
s2
,n
n2
>,

<s
sk
,n
nk
>,

<s
sNum
,n
nNum
>),其中,每个元素为序偶<s
sk
,n
nk
>,表示服务s
sk
被部署到节点n
nk
上。3.根据权利要求1所述的一种分布式的微服务调度优化方法,其特征在于,所述步骤2具体为:动作描述:将第t个微服务调度优化任务的动作定义为在当前优化调度任务中,执行将服务部署到节点的操作a
t
=(s
i
,n
j
),即服务s
i
被部署到节点n
j
上,其中,n
j
的选择要符合服务依赖、数据依赖和用户依赖约束的限制,面向分布式服务环境。4.根据权利要求3所述的一种分布式的微服务调度优化方法,其特征在于,所述服务的调度约束设计如下:服务依赖:微服务的功能相对独立,在分布式环境下,用户需求是复合的,微服务需要通过相互协同来满足用户需求,通过分析微服务之间的调用关系,从微服务的链路数据提取各种强度的服务依赖,用以约束动作集,具体的,从微服务调用链路数据中统计得到服务之间调用关系的次数,再将服务之间调用次数除以服务单位时间内总的调用次数作为服务依赖的强度,此后,在待部署服务与其他服务具有强服务依赖关系时,优先选择强依赖服务所在或者相邻节点;数据依赖:数据是服务的核心要素,所以数据依赖被用于限定动作集,数据源的位置可以通过先验知识获取,服务与数据源的依赖关系通过业务流程描述文件的解析获取,采用矩阵描述,矩阵的行表示服务所在节点编号,矩阵的列表示数据所在节点编号,若服务与数据之间存在依赖,则以服务所在节点编号和数据所在节点编号为下标的元素为1,否则为0,此后,在待部署服务与数据具有依赖关系时,优先选择数据所在或者相邻节点;用户依赖:用户是调用服务的主体,所以用户依赖被用于限定动作集,用户与服务的依赖关系由先验知识获取,采用矩阵描述,矩阵的行表示服务所在节点编号,矩阵的列表示用
户接入的节点编号,若服务与用户之间存在依赖,则以服务所在节点编号和用户接入节点编号为下标的元素为1,否则为0,此后,在待部署服务与用户具有依赖关系时,优先选择用户所在或者相邻节点。5.根据权利要求1所述的一种分布式的微服务调度优化方法,其特征在于,所述步骤3具体为:奖励描述:以动作a
t
完成后和完成前所有服务的服务时延的差值和资源均衡性的差值之和作为设置奖励值的依据,计算方法如公式(1)所示,当服务延时降低,资源均衡性提升时,奖励为正值,否则奖励为0或负值;r
t
=(g
t+1

g
t
)

(avgT
t+1

avgT
t
) 公式(1)如公式(1)所示,r
t
为第t个微服务调度优化任务执行后的奖励值,g
t
和g
t+1
分别为动作a
t
执行前后的资源均衡性,avgT
t
和avgT
t+1
分别为动作a
t
执行前后...

【专利技术属性】
技术研发人员:李寒赵卓峰
申请(专利权)人:北方工业大学
类型:发明
国别省市:

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

1