一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于强化学习的微服务负载均衡和弹性扩缩容方法与流程

2022-02-22 09:50:43 来源:中国专利 TAG:


1.本发明涉及微服务应用负载均衡领域、强化学习领域和容器资源动态调整领域,具体涉及到一种基于强化学习的微服务应用负载均衡和容器扩缩容方法。


背景技术:

2.随着移动互联网与物联网的快速发展,各类终端设备数量不断增加,基于互联网和物联网的服务应用也面临不断增长的访问量需求。基于传统单体架构的应用构建方式已经无法满足日益增长和多样化的访问需求。由于微服务架构的灵活特性,可以将整体应用按照各类需求拆分为若干个微服务应用。每项微服务应用可以灵活的进行负载调整和弹性的扩缩容,这是微服务应用可以灵活的应对不同场景的流量访问需求。因此各大互联网企业纷纷基于系统资源调度更加灵活的微服务架构构建自己的应用。同时,如何实现自动的微服务应用的负载均衡和弹性的扩容已经成为目前研究的热点。
3.目前解决负载均衡主要方法包括:基于消息队列面向链的负载均衡算法来调整总体平均响应时间;基于改进的主导资源公平分配算法实现更优的响应时间、吞吐率和稳定性;基于改进的一致性哈希算法对负载进行分配;基于请求在微服务依赖链上的平均请求延迟来降低了系统的综合响应时间。
4.然而现有的方法只能基于特定场景下进行负载调整,无法实现复杂场景动态变化下的负载均衡调整和资源调整。因此本发明基于强化学习相关理论。通过仿真各类流量场景实现与决策智能体的信息交互。通过设计合理的奖励函数并构建负载均衡决策和容器动态扩容组件,实现微服务应用的负载调节和容器资源的动态调整。


技术实现要素:

5.为解决现有技术中的缺点和不足,本发明提出了一种基于强化学习的微服务应用负载均衡和容器资源扩容方法,用来实现不同应用场景下微服务应用负载的自动化调整和资源的动态扩容。
6.本发明为实现上述的技术目的,采用如下的技术方案:
7.步骤(1)、构建微服务应用组件运行环境,包括负载均衡组件、微服务应用组件、容器扩容组件、容器资源池、指标监控组件、流量模拟组件。
8.步骤(2)、基于强化学习理论分别设计强化学习的基本要素,包括环境空间、智能体、动作空间、奖励函数等。然后设计决策智能体,该智能体功能包括:协调负载和容器资源的弹性扩容。最后实现负载调节和容器扩容的策略。
9.步骤(3)、在基本环境和相关算法设计成功后。基于测试组件对微服务应用进行访问流量压力测试,然后利用指标监控组件进行响应时间、吞吐量等指标的采集,并将采集指标输入到决策智能体中。
10.步骤(4)、智能体随机作出一个决策反馈给负载均衡组件和容器扩容组件。负载均衡和容器扩容组件收到智能体的决策后作出相应的负载调节和容器扩容,来改变微服务应
用当前的运行状态,并将奖惩值反馈给决策智能体。然后微服务应用进入下一阶段的指标统计中。
11.步骤(5)、重复步骤(3)、(4)步骤若干轮之后,基于智能决策体和外界环境的交互,给出相应的奖惩值,直到决策智能体达到稳定的奖励值之后。最后将训练好的智能决策库动作应用到实际的微服务应用负载均衡和扩容需求中。
附图说明
12.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
13.图1为本发明系统的总体架构图
14.图2为本发明智能决策模块的流程图
15.图3为本发明容器资源扩缩容的流程图
具体实施方式
16.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
17.本发明的基于强化学习的容器负载调度方法的系统结构包含五个模块:流量模拟模块、指标采集模块、负载均衡决策模块、容器资源调度模块、决策智能体模块。
18.下面结合图1与图2,对基于强化学习的微服务负载均衡和容器扩缩容方法的具体流程进行详细说明:
19.s1、构建微服务应用组件运行环境,包括负载均衡组件、微服务应用组件、容器扩容组件、容器资源池、指标监控组件、压力测试、流量模拟组件。
20.s2、基于强化学习理论设计强化学习的基本要素,包括环境空间、智能体、动作空间、奖励函数等。然后设计决策智能体,该智能体功能包括:协调负载和容器资源的弹性扩容。最后实现负载调节和容器扩容的策略。
21.s3、在基本环境和相关算法设计成功后。基于测试工具对微服务应用进行访问流量压力测试,然后利用指标监控组件进行响应时间、吞吐量等指标的采集,并将采集指标输入到决策智能体中。
22.s4、智能体随机作出一个决策反馈给负载均衡组件和容器扩容组件。负载均衡和容器扩容组件收到智能体的决策后作出相应的负载调节和容器扩容,来改变微服务应用当前的运行状态,并将奖惩值反馈给决策智能体。然后微服务应用进入下一阶段的指标统计中。
23.s5、重复s3、s4步骤若干轮之后,基于智能决策体和外界环境的交互,给出相应的奖惩值,直到决策智能体达到稳定的奖励值之后。最后将训练好的智能决策库动作应用到实际的微服务应用负载均衡和扩容需求中。
24.本发明基于强化学习的微服务负载均衡和弹性扩缩容方法,结合强化学习中智能体自学习的特点。该方法能够在不同的访问场景下,自动的学习应对不同流量的负载调整策略。同时,当微服务实例数量无法满足访问的响应需求时,可以经过学习的记忆动作实现自动的容器资源扩容,以此来实现微服务应用最佳的服务质量和性能指标。
25.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。


技术特征:
1.基于强化学习的微服务负载均衡和弹性扩缩容方法,其特征在于,通过构建流量模拟、指标采集、智能决策、负载均衡、容器扩缩容等各类核心组件,同时设计基于强化学习理论的度量值、空间环境、动作、奖励函数等基本要素。在模拟访问请求场景和核心组件提供的功能上进行反复的测试,实现决策智能体与实际环境的交互,并从中学习到最优化决策,实现微服务应用的自动化负载均衡和容器资源的弹性扩缩容。具体步骤如下:步骤(1)、构建微服务应用组件运行环境,包括负载均衡组件、微服务应用组件、容器扩容组件、容器资源池、指标监控组件、流量模拟组件。步骤(2)、基于强化学习理论分别设计强化学习的基本要素,包括环境空间、智能体、动作空间、奖励函数等。然后设计决策智能体,该智能体功能包括:协调负载和容器资源的弹性扩容。步骤(3)、在基本环境和相关算法设计成功后。基于测试组件对微服务应用进行访问流量压力测试,然后利用指标监控组件进行响应时间、容器负载等指标的采集,并将采集指标输入到决策智能体中。步骤(4)、智能体随机作出一个决策反馈给负载均衡组件和容器扩容组件。负载均衡和容器扩容组件收到智能体的决策后作出相应的负载调节和容器扩容,来改变微服务应用当前的运行状态,并将奖惩值反馈给决策智能体。然后微服务应用进入下一阶段的指标统计中。步骤(5)、重复步骤(3)、(4)步骤若干轮之后,基于智能决策体和外界环境的交互,给出相应的奖惩值,直到决策智能体达到稳定的奖励值之后。最后将训练好的智能决策库动作应用到实际的微服务应用负载均衡和扩容需求中,以此来实现微服务应用的自动化状态调整。2.根据权利要求1所述的一种强化学习的微服务应用容器负载调度方法,其特征在于,步骤(1)中,组件详细描述如下。s11、流量模拟组件,主要完成不同场景下的流量仿真和压力测试,以保证在智能决策组件可以在同一访问流量的场景下完成多次的负载均衡和容器资源调整。从而通过反复的训练寻找到最优的调整策略。s12、指标监控组件,主要完成微服务应用实例的响应时间信息采集、分配资源的信息指标采集。用于对微服务实例的实时监控,并将监控信息转换成环境观测信息发送到智能决策组件中。s13、智能决策组件,该组件为系统的核心组件。首先根据指标监控组件采集的环境信息发送给智能决策组件;智能决策逐渐根据信息智作出相关动作(负载调整或容器资源调整);然后将当前节点动作信息发送给负载均衡组件和容器扩容组件;外界环境根据动作信息会给出当前调整策略的奖惩值。然后进入一下阶段的信息观测,不断重复该过程直到奖励达到稳定值。s14、负载均衡组件,根据智能决策组件的动作指令进行负载的调整,主要通过实现服务网关的相关接口,通过调用接口实现不同微服务实例的流量负载均衡和新建微服务实例的引流。s15、容器扩容组件,根据智能决策组件的动作指令进行弹性的扩缩容,主要功能包括:实现各类容器资源池的接口,可以通过该接口调度容器管理平台进行容器的启动、停止等
功能。3.根据权利要求1所述的一种强化学习的微服务应用容器负载调度方法,其特征在于,步骤(2)中,强化学习基本元素定义包括:交互环境的测量值、动作空间、奖惩值。具体要素的形式化表示如下。s21、交互环境测量指标定义,其中交互环境的测量指标包括:每个微服务应用的响应时间和微服务对应容器资源的负载。具体定义如下:总的请求访问数量为r,则第i个微服务实例对应的服务为s
i
,其中s
i
分配的请求数量为r
i
,对应的容器资源数量为mi,其中li表示当前服务实例的负载,其中ti为对应微服务实例对应的响应时间,则定义v
si
为服务si对应的观测值,v
si
={r
i
,t
i
,m
i
,l
i
}s22、动作空间的定义,其中动作主要包括两种类型:负载调节和容器资源调节,本发明定义动作空间集合为a,其中负载调节的动作集合定义为b,容器资源调节的动作集合定义为c。这样动作集合包含四种场景分别定义为a1,a2,a3,a4。其中a1为智能体执行单一的微服务应用负载调节动作,定义为a1={b};其中a2为智能体执行单一的容器资源调整动作,定义为a2={c};其中a3为执行复合动作即先容器资源扩容后再执行负载调节动作,此时定义为a3={c|b};其中a4为先执行容器资源的调整再进行负载调整,此时定义为a4={b|c}。因此定义总的动作集合a={a1∪a2∪a3∪a4}针对负载调节动作b:实际上是在微服务实例集合u上分配访问请求r,其中r为总的请求访问数量,此时定义实例u
i
分配的访问量为r
i
,其中r1 r2 ... r
i
... r
n
=r。该过程主要是决策智能体依据环境观测空间值在实例集合中u中合理分配访问请求r,即将请求r
i
转发到u
i
。因此定义负载调节动作为b={r
i

u
i
|0≤i≤n},表示将r
i
数量的访问请求分配到u
i
上,其中n为实例总数量。针对容器调整动作c:实际上是新增或减少微服务实例对应的容器资源数量。定义容器资源池中的容器资源数量为m。容器扩容决策智能体的主要工作是调整微服务系统s中各应用服务的应用实例对应的容器数量。定义s
i
为第i个应用服务对应的容器数量为m
i
。定义c0表示不对任何一个应用进行容器资源调整操作即保存目前的容器数量状态。定义c
n
为对微服务进行容器数量进行增加或者减少的动作,δe为调整容器的步长。表示第i个服务对应的容器数量调整操作,表示对服务i增加两个容器资源,表示对服务减少两个容器资源。其中m为微服务的数量,δe为调整容器的步长。弹性扩容场景下的强化学习智能体的动作空间可以表示为:s23、奖励函数的设计,奖励函数决定了决策智能体是否能自动化进行参数的选择和调整。本发明给出两种可行的奖励函数定义:基于实例统计的线性奖励函数、基于非线性的高
斯奖励函数。基于实例统计量的线性奖励函数:智能决策体主要作用是能够在最优响应时间内合理分配访问请求,因此在设计奖励函数时,需要合理的定义奖励函数的界限以及惩罚函数。本发明定义奖励上限r
max
与奖励下限r
min
。奖励上限r
max
用于限制智能体尝试过度激进的策略即选择绝对的低响应时间,导致部分请求永远处于等候队列中无法处理。奖励下限r
min
用于保证决策智能体在重新分配访问请求后不会得到过低的奖励值,尤其是在极端访问场景下。定义r
fail
为惩罚性奖励值,决策智能体决策的动作不能提高各微服务实例的响应时间和减轻容器的负载,则由环境给出负的奖励即惩罚性奖励值。定义一个微服务实例自t时刻周期内的最大响应时间为t
t,j,max
,此时决策智能体在最大响应时间获得最小的奖励。定义最小的响应时间为t
t,j,min
。即,在最小的响应时间获得最大的奖励值。定义平均响应时间为表示统时间t周期内大部分请求所获得的响应速度,同时,定义平均响应时间智能体获的奖励值为因此定义总的响应时间奖励的公式表示如下。自变量表示请求t的处理时间,定义域为t∈[0, ∞)。基于非线性高斯的奖励函数:在该函数下定义智能决策体如果分配的访问请求导致响应时间严重超时,则获得惩罚性奖励值r
fail
。高斯分布的奖励参数的关键是如何设计服从高斯分布的随机变量x~n(μ,δ2),并且是大部分的取值分布在均值附近。本文使用全局响应时间平均值来表示随机变量t的平均值μ的估计值。全局响应时间标准差δ
t
作为随机变量t
i
的标准差估计值。最后加入奖励放大比率r
k
与奖励偏移量r
b
。定义奖励界限,其中奖励函数的上限定义为:奖励函数下线定义为:r
min
=r
b
。则构造奖励函数如下。
4.根据权利要求1所述的一种强化学习的微服务应用容器负载调度方法,其特征在于,步骤(4)中,根据不同的访问场景,各动作决策基本的规则如下,如果微服务应用的实例数量能够满足一定流量响应时间需求则调度负载均衡组件,将访问请求流量分配到到不同实例中。即在不增加微服务实例的数量下,将访问请求进行重新定向分配,以此来实现负载的均衡。此时无需进行容器资源的调整动作。如果微服务的实例数量不能满足访问需求,如单个微服务的响应时间严重超时、微服务实例的资源负载达到满载状态,此时需要对微服务的实例进行容器资源的扩容,即通过增加微服务对应的容器资源数量来实现访问请求的分流,此时需要先进行容器资源扩容动作并重新分配流量。如果访问请求数量较少,目前的微服务实例数量远满足访问需求,则进行容器资源的缩减,并重新分配流量,以此实现资源的有效利用。

技术总结
本发明提出一种基于强化学习的微服务负载均衡和弹性扩缩容方法,主要涉及强化学习领域、微服务应用的负载调度和容器的弹性扩容等领域。主要步骤包括:首先构建微服务应用环境,具体包括微服务应用流量模拟组件、指标监控组件、智能决策组件、负载调节组件、容器扩缩容组件。通过监控插件对微服务的状态进行监控,以此来获取服务的响应时间、等指标,建立各类资源和负载信息形式化的表示方法;然后面向负载调整和容器动态扩容的场景下,基于强化学习理论设计环境、智能体、动作空间、奖励函数等关键元素;通过模拟负载环境、资源等信息实现微服务应用与流量环境的交互,基于智能决策组件现实微服务负载和资源的调整。并将决策动作空间存储在智库中。最后将智库中决策结果应用到实际环境下的负载调整中,实现微服务应用负载调整策略和容器弹性扩容的动态调整,以此实现微服务应用的最佳性能和响应时间。服务应用的最佳性能和响应时间。服务应用的最佳性能和响应时间。


技术研发人员:陈雷鸣 张卫山 王玉乾 董次浩 袁晓晨
受保护的技术使用者:中国石油大学(华东)
技术研发日:2021.11.04
技术公布日:2022/2/7
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献