【技术实现步骤摘要】
基于资源分配的微服务实例部署方法及装置
[0001]本专利技术涉及微服务领域,特别是涉及基于资源分配的微服务实例部署方法及装置。
技术介绍
[0002]随着云计算技术的不断发展,云原生受到越来越多的关注,云原生应用的开发需要有软 件架构的支持,目前的软件架构趋势是采用微服务的方式,将传统单体式应用分解为一组小 的、可独立部署的服务,并使用容器对每个模块进行封装。
[0003]现有技术中的微服务软件架构缺乏多方面的考虑,包括:微服务实例运行过程中资源的 动态变化对系统性能的影响、微服务实例数量和可用性之间的关联等;其中,资源的动态变 化对系统性能的影响是指由于每个微服务实例设定两种资源属性,中央处理器资源和内存资 源,对这两种资源分别设置两种配额,微服务实例需要的最少资源量和允许微服务实例使用 的最大资源量;目前的微服务实例部署仅考虑是否满足最少资源量,并没有考虑因最大资源 量的限制引起的资源竞争问题;其次,目前的微服务实例数量或是预设已知的,或是假设每 个微服务实例的资源量是固定值,通过构建形式化模型进行微服务实例数量的求解;都没有 考虑和微服务实例的可用性之间的关联。
[0004]因此,如何在进行微服务实例部署的同时考虑资源分配和微服务实例的可用性是一个亟 待解决的问题。
技术实现思路
[0005]鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种基于资源分配的微服务实例 部署方法及装置,用于解决现有技术中无法在进行微服务实例部署的同时考虑资源分配和微 服务实例的可用性问题。<
【技术保护点】
【技术特征摘要】
1.一种基于资源分配的微服务实例部署方法,其特征在于,所述微服务实例部署方法包括以下步骤:获取每个微服务实例的中央处理器的第一资源需求量、每个微服务实例的内存的第二资源需求量、每个微服务实例的用户请求到达率以及每个微服务实例的可用性数据;基于所述第一资源需求量和所述用户请求到达率,应用第一拟合函数,构建所述第一资源需求量和所述用户请求达到率之间的第一函数关系;基于所述第二资源需求量和所述用户请求到达率,应用第二拟合函数,构建所述第二资源需求量和所述用户请求到达率之间的第二函数关系;基于所述可用性数据和预设的微服务实例的数量条件,确定微服务实例的数量;基于所述微服务实例的数量、所述第一函数关系、所述第二函数关系,应用启发式算法,部署微服务实例。2.根据权利要求1所述的方法,其特征在于,所述启发式算法包含目标函数和约束条件;所述约束条件包括:第一约束条件为同一节点上所有微服务实例所需的中央处理器的最少资源量不超过同一节点的中央处理器资源量,表达式为:其中,m
i
表示第i个微服务实例,C表示中央处理器,R表示微服务实例所需的最少资源量;表示第i个微服务实例所需的中央处理器的最少资源量;M表示微服务实例的总个数;U
i,k
表示第i个微服务实例是否使用第k个依赖库;V表示依赖库的总个数;表示第j个节点上的中央处理器资源量;h
k,j
表示第k个依赖库是否被安装在第j个节点上,如果是,h
k,j
为1,否则h
k,j
为0;z
i,j
表示第i个微服务实例是否被部署在第j个节点上,如果是,z
i,j
为1,否则,z
i,j
为0;N表示节点的总个数;第二约束条件为同一节点上所有微服务实例所需的内存的最少资源量不超过同一节点的内存资源量,表达式为:其中,m
i
表示第i个微服务实例,Q表示内存,R表示微服务实例所需的最少资源量;表示第i个微服务实例所需的内存的最少资源量;M表示所述微服务实例的总个数;U
i,k
表示第i个微服务实例是否使用第k个依赖库;V表示依赖库的总个数;表示第j个节点上的内存资源量;h
k,j
表示第k个依赖库是否被安装在第j个节点上;如果是,h
k,j
为1,否则h
k,j
为0;z
i,j
表示第i个微服务实例是否被部署在第j个节点上,如果是,z
i,j
为1,否则,z
i,j
为0;N表示所述节点的总个数;第三约束条件为同一节点上所有微服务实例的依赖库大小不超过同一节点的存储容量,表达式为:
其中,v
k
表示第k个依赖库的大小;h
k,j
表示第k个依赖库是否被安装在第j个节点上;表示第j个节点上的存储容量;V表示依赖库的总个数;N表示所述节点的总个数;第四约束条件为在预设时间段内,同一节点上所有微服务实例所需的中央处理器的资源量和所述同一节点的中央处理器资源量的差值,与所述中央处理器资源量的比值小于预设的第一比值阈值,表达式为:其中,表示第t时刻第i个微服务实例在所述第i个微服务实例归属的队列上的用户请求到达率与第i个微服务实例所需的中央处理器资源量的函数关系;z
i,j
表示第i个微服务实例是否被部署在第j个节点上,如果是,z
i,j
为1,否则,z
i,j
为0;表示第j个节点上的中央处理器资源量;M表示所述微服务实例的总个数;N表示所述节点的总个数;T表示预设时间段;δ
c
表示所述第一比值阈值;第五约束条件为在所述预设时间段内,同一节点上所有微服务实例所需的内存的资源量和所述同一节点的内存资源量的差值,与所述内存资源量的比值小于预设的第二比值阈值,表达式为:其中,表示第t时刻第i个微服务实例在所述第i个微服务实例归属的队列上的用户请求到达率与第i个微服务实例所需的内存资源量的函数关系;z
i,j
表示第i个微服务实例是否被部署在第j个节点上,如果是,z
i,j
为1,否则,z
i,j
为0;表示第j个节点上的内存资源量;M表示所述微服务实例的总个数;N表示所述节点的总个数;T表示所述预设时间段;δ
M
表示所述第二比值阈值;第六约束条件为第i个微服务实例的完成时间,表达式为:其中,T
i
为第i个微服务实例的完成时间;parent(i)为第i个微服务实例的父节点的微服务实例;T
p
表示第p个微服务实例的数据传输时间;为第i个微服务实例的数据传输时间,如果z
i,j
×
z
p,j
=1,则否则z
i,j
表示第i个微服务实例是否被部署在第j个节点上,如果是,z
i,j
为1,否则,z
i,j
为0;z
p,j
表示第i个微服务实例的父节点的微服务实例是否被部署在第j个节点上,如果是,z
p,j
为1,否则,z
p,j
为0;S
i,p
表示第i个微服务实例和第i个微服务实例的父节点的微服务实例之间的请求大小;B
j
表示第j个节点的
网络带宽;W
i
表示第i个微服务的响应时间;并且,所有微服务应用的完成时间小于等于微服务应用的截止时间,表达式为:T
M
≤D其中,T
M
表示所述所有微服务实例运行的完成时间,D表示所述微服务实例运行的截止时间,M表示所述微服务实例的总个数。3.根据权利要求2所述的方法,其特征在于,所述目标函数为总成本达到预设的成本阈值;所述总成本包括资源使用成本和通信成本;所述总成本的表达式为:C=C
res
+C
com
C表示所述总成本,C
res
表示所述资源使用成本,C
com
表示所述通信成本;其中,所述资源使用成本的表达式为:其中,z
i,j
表示第i个微服务实例是否被部署在第j个节点上,如果是,z
i,j
为1,否则,z
i,j
为0;M表示所述微服务实例的总个数;X
i
表示第i个微服务实例的数量;G
j
表示第j个节点的租用单价;T表示微服务实例的运行时间;所述通信成本的表达式为:所述通信成本的表达式为:其中,Tran_size表示不同微服务实例之间的网络数据传输量,F
j
表示第j个节点对应的网络传输单价;T表示所述微服务实例的运行时间;M表示所述微服务实例的总个数;N表示所述节点的总个数;表示第i2个微服务实例的用户请求到达率;表示第i1个微服务实例的数量;表示第i2个微服务实例的数量;表示第i2个微服务实例是否被部署在第j个节点上,如果是,为1,否则,为0;表示第i1个微服务实例是否被部署在第j个节点上,如果是,为1,否则,为0;表示第i1个微服务实例和第i2个微服务实例是否有依赖关系,如果有,为1,否则,为0;表示第i1个微服务实例和第i2个微服务实例之间的请求大小。4.根据权利要求1所述的方法,其特征在于,所述基于所述可用性数据和预设的微服务实例的数量条件,确定微服务实例的数量,包括:基于所述可用性数据和预设的微服务实例不可用条件,得到微服务实例不可用的概率小于预设的第一概率值;基于所述微服务实例不可用的概率小于所述第一概率值,以及所述数量条件,确定所述微服务实例的数量;所述数量条件为所述微服务实例的数量不超过节点总数。5.根据权利要求1所述的方法,其特征在于,所述第一拟合函数为:
其中,表示第i个微服务实例的用户请求到达率与第i个微服务实例所需的中央处理器资源量的函数关系;λ
i
表示第i个微服务实例的用户请求达到率;a表示第一斜率;b表示第一拟合函数的截距;a、b均为常数;η表示预设...
【专利技术属性】
技术研发人员:蒋昌俊,闫春钢,丁志军,张亚英,王松,
申请(专利权)人:同济大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。