一种微服务环境下基于业务预测动态扩容的方法技术

技术编号:32357122 阅读:15 留言:0更新日期:2022-02-20 03:18
本发明专利技术公开了一种微服务环境下基于业务预测动态扩容的方法。为了克服微服务启动时间长,影响在高峰期用户的使用的体验的问题;本发明专利技术包括以下步骤:S1:将一个或多个微服务的业务数据通过指定的日志格式写入日志库;将每个微服务对应的容器运行数据写入到日志库;S2:业务预测动态扩缩容引擎根据日志库中的日志计算指标,生成业务统计数据;S3:根据历史同期的微服务容器数,结合日志库的业务统计数据与容器的运行数据,定时计算当天的微服务扩缩容;S4:将一天均分为若干个周期,根据实时获取的业务数据日志和容器运行运输,实时计算下一周期的微服务扩缩容,结合业务统计数据进行预扩容,在业务高峰期前扩容,有更好的用户体验,提高硬件的使用率。提高硬件的使用率。提高硬件的使用率。

【技术实现步骤摘要】
一种微服务环境下基于业务预测动态扩容的方法


[0001]本专利技术涉及一种微服务扩容领域,尤其涉及一种微服务环境下基于业务预测动态扩容的方法。

技术介绍

[0002]现有的微服务容器化部署,对微服务扩缩容是通过设置容器所使用硬件的一些硬件指标的阀值,例如设置CPU的使用率大于80%,内存的使用率大于80%等,当超过阀值的时候,系统就会增加部署微服务容器的数量来自动扩容,新增加一个或者几个容器来提供服务。
[0003]这种方式的主要问题包括:1)新增加的容器何时能够提供服务完全依赖于容器中微服务启动的时间长短,如果微服务启动时间比较长,则做业务处理的前端用户就会较长时间处于卡顿状态,影响用户体验,甚至影响核心业务的开展。而企业应用系统的一些微服务,设计的颗粒度比较大,还要做一些基础数据的加载预加载,因而启动的时间比较长,实时根据硬件指标的阀值进行扩容影响用户体验。
[0004]2)系统扩容的过程中会使用CPU,存储等硬件资源,如果根据硬件资源来做实时扩容,有可能因为硬件资源的问题导致扩容失败,不能事先进行资源的统筹分配。
[0005]3)存在性能的不稳定的毛刺现场。企业用户在使用的时候服务的压力短时间内(例如10S)达到一个峰值,但是这个峰值因为持续的时间短,达不到硬件扩容的要求,因此在这段时间内的性能就会存在不稳定的现象。
[0006]例如,一种在中国专利文献上公开的“业务服务扩缩容方法、装置、介质和电子设备”,其公告号CN112822298B,方法包括:接收业务请求,将业务请求转发至对应的业务服务;获取业务请求携带的指定接口标识信息以及预设关联关系,关系包括不同的业务服务的业务标识与每个业务服务的接口标识信息之间的映射关系;基于指定接口标识信息和预设关联关系,确定业务请求对应的目标业务标识;将目标业务标识添加入业务请求,将业务请求推送入消息队列;从消息队列获取多个业务请求,基于预设业务指标计算多个业务请求的业务指标参数;在业务指标参数满足预设扩缩容条件时,对目标业务标识指示的业务服务进行扩缩容。
[0007]该方案微服务通过设置一些硬件指标的阀值,实时扩缩容,由于微服务启动时间长,影响在高峰期用户的使用的体验,硬件使用效率低。

技术实现思路

[0008]本专利技术主要解决现有技术微服务启动时间长,影响在高峰期用户的使用的体验的问题;提供一种微服务环境下基于业务预测动态扩容的方法,通过对业务系统的业务日志数据进行采集,动态分析出某类业务处理的高峰低谷时间段,在高峰期到来之前预先分配业务对应微服务需要的资源,自动调整好业务微服务下对应容器的数量,提供给更好的用
户体验与硬件使用效率。
[0009]本专利技术的上述技术问题主要是通过下述技术方案得以解决的:一种微服务环境下基于业务预测动态扩容的方法,包括以下步骤:S1:将一个或多个微服务的业务数据通过指定的日志格式写入日志库;业务预测动态扩缩容引擎将每个微服务对应的容器运行数据写入到日志库;S2:业务预测动态扩缩容引擎根据日志库中的日志计算指标,生成业务统计数据;S3:根据历史同期的微服务容器数,结合日志库的业务统计数据与容器的运行数据,定时计算当天的微服务扩缩容;S4:将一天均分为若干个周期,根据实时获取的业务数据日志和容器运行运输,实时计算下一周期的微服务扩缩容。
[0010]本方案根据集团企业用户处理业务存在高峰低谷这一客观事实,通过对业务系统的业务日志数据进行采集,就可以动态的分析出某类业务处理的高峰低谷时间段,在高峰期到来之前预先分配业务对应微服务所需要的资源,自动调整好业务微服务对应容器的数量,容器预先分配,因此即使容器中的微服务启动时间长,在业务高峰期到来之前也已经启动完成,不会影响在高峰期用户的使用的体验。由于是在业务高峰期没有来到的时候就进行扩容了,对于扩容需要的硬件资源可以统筹的安排,如果资源不够的情况可以有足够的时间可以硬件资源的扩容。在业务的高峰没有来到的时候进行扩容,扩容的机制算法是按照满足最高性能的要求来进行扩容的,因此对业务高峰期已经有了充分的预估,并已经进行了扩容了,因此不会出现性能毛刺现象。
[0011]作为优选,所述的指定的日志格式为【记录主键,功能URL,调用功能的用户,请求ID,微服务名称,记录日志的时间,响应的时间】。系统功能对应的一个或者多个微服务将指定的日志格式写入到日志系统;方便后续查询统计计算。
[0012]作为优选,所述的容器运行数据的日志格式为【记录主键,记录日志的时间,微服务名称,CUP的使用率,内存使用率】。业务预测动态扩缩容引擎按每秒的频率查询微服务容器内部的监控代理服务,将每个微服务对应的容器的资源使用情况,主要是CPU使用率,内存的使用率,写入到日志系统。方便后续查询计算。
[0013]作为优选,所述的指标包括每分钟的系统功能请求数;每分钟内系统功能响应时间的平均数、最大值、最小值和中值,以及大于平均数的记录数、大于阈值的记录数;每分钟微服务容器的CPU使用情况的平均值、最大值、最小值、以及大于平均数的记录数、大于阈值的记录数。业务预测动态扩缩容引擎每天定时与相对实时相结合的方式计算日志系统中的数据,计算出要扩缩容的计划,内容是指定微服务的容器的数量。
[0014]作为优选,所述的步骤S3包括以下步骤:S301:每天0点读取微服务列表,循环所有微服务;S302:读取微服务对应的上个月同天的微服务容器数量,计算当前微服务容器数据与上个月同天的微服务容器数量的差值ε;ε=C
N

C若差值ε≥0,直接进入步骤S4;若差值ε<0,进入步骤S303;
其中,C
N
为微服务当前的容器数量;C为微服务在上个月同天的容器数量;C

S
为定时计算的最终微服务容器数量;为向上取整运算;S303:读取微服务在日志库中的业务统计数据与容器的运行数据;S304:根据微服务的响应时间以及容器运行数据与上个月同天比较,若超过阈值,则按扩容规则进行扩容。
[0015]定时计算,根据历史数据计算当天是否是高峰时期,进行微服务容器的扩缩容计算。
[0016]作为优选,根据微服务的响应时间进行扩容;微服务在上个月同天的容器数量下,判断微服务中服务响应时间的中值是否有超过规定响应时间阈值的130%,如有则需要扩容,否则不需要扩容;该扩容规则为:其中,C

Z
为定时根据微服务的响应时间进行扩容后的容器数量;C为微服务在上个月同天的容器数量;Z
m
为微服务中服务响应时间的中值;Z为微服务中服务响应时间的阈值;为向上取整运算;根据微服务的容器运行数据进行扩容;微服务在上个月同天的容器数量下,判断微服务容器的CPU使用率超过指定的阈值的持续时间占整个CPU服务时间的比例,若占比超过额定比例,则进行扩容,否则不进行扩容;该扩容规则为:其中,C

T
为定时根据微服务的容器运行数据进行扩容后的容器数量;C为微服务在上个月同天的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微服务环境下基于业务预测动态扩容的方法,其特征在于,包括以下步骤:S1:将一个或多个微服务的业务数据通过指定的日志格式写入日志库;业务预测动态扩缩容引擎将每个微服务对应的容器运行数据写入到日志库;S2:业务预测动态扩缩容引擎根据日志库中的日志计算指标,生成业务统计数据;S3:根据历史同期的微服务容器数,结合日志库的业务统计数据与容器的运行数据,定时计算当天的微服务扩缩容;S4:将一天均分为若干个周期,根据实时获取的业务数据日志和容器运行运输,实时计算下一周期的微服务扩缩容。2.根据权利要求1所述的一种微服务环境下基于业务预测动态扩容的方法,其特征在于,所述的指定的日志格式为【记录主键,功能URL,调用功能的用户,请求ID,微服务名称,记录日志的时间,响应的时间】。3.根据权利要求1或2所述的一种微服务环境下基于业务预测动态扩容的方法,其特征在于,所述的容器运行数据的日志格式为【记录主键,记录日志的时间,微服务名称,CUP的使用率,内存使用率】。4.根据权利要求1所述的一种微服务环境下基于业务预测动态扩容的方法,其特征在于,所述的指标包括每分钟的系统功能请求数;每分钟内系统功能响应时间的平均数、最大值、最小值和中值,以及大于平均数的记录数、大于阈值的记录数;每分钟微服务容器的CPU使用情况的平均值、最大值、最小值、以及大于平均数的记录数、大于阈值的记录数。5.根据权利要求1所述的一种微服务环境下基于业务预测动态扩容的方法,其特征在于,所述的步骤S3包括以下步骤:S301:每天0点读取微服务列表,循环所有微服务;S302:读取微服务对应的上个月同天的微服务容器数量,计算当前微服务容器数据与上个月同天的微服务容器数量的差值ε;ε=C
N

C若差值ε≥0,直接进入步骤S4;若差值ε<0,进入步骤S303;其中,C
N
为微服务当前的容器数量;C为微服务在上个月同天的容器数量;C

S
为定时计算的最终微服务容器数量;为向上取整运算;S303:读取微服务在日志库中的业务统计数据与容器的运行数据;S304:根据微服务的响应时间以及容器运行数据与上个月同天比较,若超过阈值,则按扩容规则进行扩容。6.根据权利要求5所述的一种微服务环境下基于业务预测动态扩容的方法,其特征在于,根据微服务的响应时间进行扩容;微服务在上个月同天的容器数量下,判断微服务中服务响应时间的中值是否有超过规定响应时间阈值的130%,如有则需要扩容,否则不需要扩容;该扩容规则为:
其中,C

Z
为定时根据微服务的响应时间进行扩容后的容器数量;C为微服务在上个月同天的容器数量;Z
m
为微服务中服务响应时间的中值;Z为微服务中服务响应时间的阈值;为向上取整运算;根据微服务的容器运行数据进行扩容;微服务在上个月同天的容器数量下,判断微服务容器的CPU使用率超过指定的阈值的持续时间占整个CPU服务时间的比例,若占比超过额定比例,则进行扩容,否则不进行扩容;该扩容规则为:其中,C

T
为定时根据微服务的容器运行数据进行扩容后的容器数量;C为微服务在上个月同天的容器数量;T
m
为微服务容器的CPU使用率超过指定的阈值的持续时间;T为整个CPU服务时间;为向上取整运算;定时计算的最终微服务容器数量为:C

S
=max(C

...

【专利技术属性】
技术研发人员:洪鹏韩爱生
申请(专利权)人:杭州新中大科技股份有限公司
类型:发明
国别省市:

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

1