CN114064204A - 一种微服务环境下基于业务预测动态扩容的方法 - Google Patents

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

Info

Publication number
CN114064204A
CN114064204A CN202111269174.4A CN202111269174A CN114064204A CN 114064204 A CN114064204 A CN 114064204A CN 202111269174 A CN202111269174 A CN 202111269174A CN 114064204 A CN114064204 A CN 114064204A
Authority
CN
China
Prior art keywords
service
micro
containers
capacity expansion
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111269174.4A
Other languages
English (en)
Inventor
洪鹏
韩爱生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou New China And Big Polytron Technologies Inc
Original Assignee
Hangzhou New China And Big Polytron Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou New China And Big Polytron Technologies Inc filed Critical Hangzhou New China And Big Polytron Technologies Inc
Priority to CN202111269174.4A priority Critical patent/CN114064204A/zh
Publication of CN114064204A publication Critical patent/CN114064204A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

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

Description

一种微服务环境下基于业务预测动态扩容的方法
技术领域
本发明涉及一种微服务扩容领域,尤其涉及一种微服务环境下基于业务预测动态扩容的方法。
背景技术
现有的微服务容器化部署,对微服务扩缩容是通过设置容器所使用硬件的一些硬件指标的阀值,例如设置CPU的使用率大于80%,内存的使用率大于80%等,当超过阀值的时候,系统就会增加部署微服务容器的数量来自动扩容,新增加一个或者几个容器来提供服务。
这种方式的主要问题包括:
1)新增加的容器何时能够提供服务完全依赖于容器中微服务启动的时间长短,如果微服务启动时间比较长,则做业务处理的前端用户就会较长时间处于卡顿状态,影响用户体验,甚至影响核心业务的开展。而企业应用系统的一些微服务,设计的颗粒度比较大,还要做一些基础数据的加载预加载,因而启动的时间比较长,实时根据硬件指标的阀值进行扩容影响用户体验。
2)系统扩容的过程中会使用CPU,存储等硬件资源,如果根据硬件资源来做实时扩容,有可能因为硬件资源的问题导致扩容失败,不能事先进行资源的统筹分配。
3)存在性能的不稳定的毛刺现场。企业用户在使用的时候服务的压力短时间内(例如10S)达到一个峰值,但是这个峰值因为持续的时间短,达不到硬件扩容的要求,因此在这段时间内的性能就会存在不稳定的现象。
例如,一种在中国专利文献上公开的“业务服务扩缩容方法、装置、介质和电子设备”,其公告号CN112822298B,方法包括:接收业务请求,将业务请求转发至对应的业务服务;获取业务请求携带的指定接口标识信息以及预设关联关系,关系包括不同的业务服务的业务标识与每个业务服务的接口标识信息之间的映射关系;基于指定接口标识信息和预设关联关系,确定业务请求对应的目标业务标识;将目标业务标识添加入业务请求,将业务请求推送入消息队列;从消息队列获取多个业务请求,基于预设业务指标计算多个业务请求的业务指标参数;在业务指标参数满足预设扩缩容条件时,对目标业务标识指示的业务服务进行扩缩容。
该方案微服务通过设置一些硬件指标的阀值,实时扩缩容,由于微服务启动时间长,影响在高峰期用户的使用的体验,硬件使用效率低。
发明内容
本发明主要解决现有技术微服务启动时间长,影响在高峰期用户的使用的体验的问题;提供一种微服务环境下基于业务预测动态扩容的方法,通过对业务系统的业务日志数据进行采集,动态分析出某类业务处理的高峰低谷时间段,在高峰期到来之前预先分配业务对应微服务需要的资源,自动调整好业务微服务下对应容器的数量,提供给更好的用户体验与硬件使用效率。
本发明的上述技术问题主要是通过下述技术方案得以解决的:
一种微服务环境下基于业务预测动态扩容的方法,包括以下步骤:
S1:将一个或多个微服务的业务数据通过指定的日志格式写入日志库;业务预测动态扩缩容引擎将每个微服务对应的容器运行数据写入到日志库;
S2:业务预测动态扩缩容引擎根据日志库中的日志计算指标,生成业务统计数据;
S3:根据历史同期的微服务容器数,结合日志库的业务统计数据与容器的运行数据,定时计算当天的微服务扩缩容;
S4:将一天均分为若干个周期,根据实时获取的业务数据日志和容器运行运输,实时计算下一周期的微服务扩缩容。
本方案根据集团企业用户处理业务存在高峰低谷这一客观事实,通过对业务系统的业务日志数据进行采集,就可以动态的分析出某类业务处理的高峰低谷时间段,在高峰期到来之前预先分配业务对应微服务所需要的资源,自动调整好业务微服务对应容器的数量,容器预先分配,因此即使容器中的微服务启动时间长,在业务高峰期到来之前也已经启动完成,不会影响在高峰期用户的使用的体验。由于是在业务高峰期没有来到的时候就进行扩容了,对于扩容需要的硬件资源可以统筹的安排,如果资源不够的情况可以有足够的时间可以硬件资源的扩容。在业务的高峰没有来到的时候进行扩容,扩容的机制算法是按照满足最高性能的要求来进行扩容的,因此对业务高峰期已经有了充分的预估,并已经进行了扩容了,因此不会出现性能毛刺现象。
作为优选,所述的指定的日志格式为【记录主键,功能URL,调用功能的用户,请求ID,微服务名称,记录日志的时间,响应的时间】。系统功能对应的一个或者多个微服务将指定的日志格式写入到日志系统;方便后续查询统计计算。
作为优选,所述的容器运行数据的日志格式为【记录主键,记录日志的时间,微服务名称,CUP的使用率,内存使用率】。业务预测动态扩缩容引擎按每秒的频率查询微服务容器内部的监控代理服务,将每个微服务对应的容器的资源使用情况,主要是CPU使用率,内存的使用率,写入到日志系统。方便后续查询计算。
作为优选,所述的指标包括每分钟的系统功能请求数;每分钟内系统功能响应时间的平均数、最大值、最小值和中值,以及大于平均数的记录数、大于阈值的记录数;每分钟微服务容器的CPU使用情况的平均值、最大值、最小值、以及大于平均数的记录数、大于阈值的记录数。业务预测动态扩缩容引擎每天定时与相对实时相结合的方式计算日志系统中的数据,计算出要扩缩容的计划,内容是指定微服务的容器的数量。
作为优选,所述的步骤S3包括以下步骤:
S301:每天0点读取微服务列表,循环所有微服务;
S302:读取微服务对应的上个月同天的微服务容器数量,计算当前微服务容器数据与上个月同天的微服务容器数量的差值ε;
ε=CN-C
若差值ε≥0,
Figure BDA0003326111750000031
直接进入步骤S4;
若差值ε<0,进入步骤S303;
其中,CN为微服务当前的容器数量;
C为微服务在上个月同天的容器数量;
C′S为定时计算的最终微服务容器数量;
Figure BDA0003326111750000032
为向上取整运算;
S303:读取微服务在日志库中的业务统计数据与容器的运行数据;
S304:根据微服务的响应时间以及容器运行数据与上个月同天比较,若超过阈值,则按扩容规则进行扩容。
定时计算,根据历史数据计算当天是否是高峰时期,进行微服务容器的扩缩容计算。
作为优选,根据微服务的响应时间进行扩容;微服务在上个月同天的容器数量下,判断微服务中服务响应时间的中值是否有超过规定响应时间阈值的130%,如有则需要扩容,否则不需要扩容;该扩容规则为:
Figure BDA0003326111750000033
其中,C′Z为定时根据微服务的响应时间进行扩容后的容器数量;
C为微服务在上个月同天的容器数量;
Zm为微服务中服务响应时间的中值;
Z为微服务中服务响应时间的阈值;
Figure BDA0003326111750000034
为向上取整运算;
根据微服务的容器运行数据进行扩容;微服务在上个月同天的容器数量下,判断微服务容器的CPU使用率超过指定的阈值的持续时间占整个CPU服务时间的比例,若占比超过额定比例,则进行扩容,否则不进行扩容;该扩容规则为:
Figure BDA0003326111750000041
其中,C′T为定时根据微服务的容器运行数据进行扩容后的容器数量;
C为微服务在上个月同天的容器数量;
Tm为微服务容器的CPU使用率超过指定的阈值的持续时间;
T为整个CPU服务时间;
Figure BDA0003326111750000042
为向上取整运算;
定时计算的最终微服务容器数量为:
C′S=max(C′Z,C′T)
其中,C′S为定时计算的最终微服务容器数量。
根据同期历史数据计算定量计算微服务的扩缩容。
作为优选,以每个小时为一个周期,所述的步骤S4具体包括以下步骤:
S401:每个小时读取微服务列表,循环计算所有的微服务;
S402:读取前一个小时的历史数据;
S403:根据实时获取微服务的响应时间、请求总数和容器的使用率与上一周期比较,若超过阈值,则按扩容规则进行扩容。
实时进行微服务扩缩容预测计算,提高预测精度。ERP等管理系统的数据处理均是有连续性的,前一个小时的业务会对下一个小时的业务处理产生直接影响,当天每小时均会对前一小时的历史数据进行计算,汇总分析业务日志数据与容器内的CPU,内存使用率等数据,通过计算来决定下一个小时容器的数量。
作为优选,所述的历史数据为本微服务的前一个小时的历史数据或相关上下游业务的微服务的前一个小时的历史数据。由于企业用户的业务使用过程中,相关上游的一个微服务的请求数增加,也会导致后续下游业务的微服务的请求数的增加。
作为优选,根据微服务的响应时间进行扩容;判断当前微服务中服务响应时间的中值是否有超过上一周期微服务中服务响应时间的中值的130%,如有则需要扩容,否则不需要扩容;该扩容规则为:
Figure BDA0003326111750000043
其中,C′Zh为实时根据微服务的响应时间进行扩容后的容器数量;
Ch为微服务在上一周期的容器数量;
Zm为微服务中服务响应时间的中值;
Zh为上一周期微服务中服务响应时间的中值;
Figure BDA0003326111750000051
为向上取整运算;
根据微服务的请求总数进行扩容;判断每分钟微服务的请求总数是否有超过上一周期的微服务的请求总数的130%,如有,则需要扩容;否则不需要扩容;该扩容规则为:
Figure BDA0003326111750000052
其中,C′q为根据微服务的请求总数进行扩容后的容器数量;
C为微服务在上一周期的容器数量;
Qm为每分钟微服务的请求总数;
Q为上一周期的微服务的请求总数;
Figure BDA0003326111750000053
为向上取整运算。
根据实时获取微服务的响应时间和请求总数定量预测微服务容器数量。
作为优选,根据微服务的容器的使用率进行扩容;
将上一周期以及当前周期的微服务中容器中CUP使用率拟合成曲线,以时间为X轴,以CPU使用率为Y轴;
构建比较框,以一分钟的时间段为宽度分别构建左右边框,以该时间段内的最大值为上边框,以该时间段内的最小值为下边框;
判断当前周期与上一周期的同一时间段内,曲线与下边框之间面积的面积比;
Figure BDA0003326111750000054
其中,PSi为一个周期内第i个时间段面积比;
SNi为当前周期第i个时间段曲线与下边框之间的面积;
SLi为上一周期第i个时间段曲线与下边框之间的面积;
判断PSi大于等于130%的数量是否大于20个;若是,则需要扩容;否则不需要扩容;该扩容规则为:
Figure BDA0003326111750000055
其中,C′U为根据微服务的容器的使用率进行扩容后的容器数量;
C为微服务在上一周期的容器数量;
nP为PSi大于等于130%的数量;
α为比例系数;
Figure BDA0003326111750000061
为向上取整运算;
Figure BDA0003326111750000062
其中,K为当前周期的时间段总数;
实时计算的最终微服务容器数量为:
C′R=max(C′Zh,C′q,C′U)
其中,C′R为实时计算的最终微服务容器数量。
定量实时预测微服务容量。
本发明的有益效果是:
1.结合业务统计数据进行预扩容,在业务高峰期还没有来到之前就已经做好扩容工作,提供更好的使用用户的系统操作体验。
2.基于业务数据统计分析与硬件相给合的扩容模式,更加的高效,同时提高硬件的使用率。
3.通过定时与实时两种方式动态的对微服务部署容器的扩缩容预测,使得预测结果更加精准。
附图说明
图1是本发明的业务预测动态扩容的方法流程图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:
本实施例的一种微服务环境下基于业务预测动态扩容的方法,如图1所示,包括以下步骤:S1:将一个或多个微服务的业务数据通过指定的日志格式写入日志库。
指定的日志格式为【记录主键,功能URL,调用功能的用户,请求ID,微服务名称,记录日志的时间,响应的时间】。
业务预测动态扩缩容引擎将每个微服务对应的容器运行数据写入到日志库。
业务预测动态扩缩容引擎按每秒的频率查询微服务容器内部的监控代理服务,将每个微服务对应的容器的资源使用情况,主要是CPU使用率,内存的使用率,写入到日志系统。容器运行数据的日志格式为【记录主键,记录日志的时间,微服务名称,CUP的使用率,内存使用率】。
S2:业务预测动态扩缩容引擎根据日志库中的日志计算指标,生成业务统计数据。
业务预测动态扩缩容引擎每天定时与相对实时相结合的方式计算日志系统中的数据,计算出要扩缩容的计划,内容是指定微服务的容器的数量。业务预测动态扩缩容引擎是整个系统的核心,它的主要作用主要有两个:
a)根据日志计算一些指标,生成统计数据的快照。
b)根据指标与算法获得每个微服务进行扩缩容的计划,并且在指定时间点执行这些计划,调用创建容器的命令来进行微服务扩缩容。
指标包括:
每分钟的系统功能请求数;
每分钟内系统功能响应时间的平均数、最大值、最小值和中值,以及大于平均数的记录数、大于阈值的记录数;
每分钟微服务容器的CPU使用情况的平均值、最大值、最小值、以及大于平均数的记录数、大于阈值的记录数。
S3:根据历史同期的微服务容器数,结合日志库的业务统计数据与容器的运行数据,定时计算当天的微服务扩缩容。
S301:每天0点读取微服务列表,循环所有微服务。
S302:读取微服务对应的上个月同天的微服务容器数量,计算当前微服务容器数据与上个月同天的微服务容器数量的差值ε;
ε=CN-C
若差值ε≥0,
Figure BDA0003326111750000071
直接进入步骤S4;
若差值ε<0,进入步骤S303;
其中,CN为微服务当前的容器数量;
C为微服务在上个月同天的容器数量;
C′S为定时计算的最终微服务容器数量;
Figure BDA0003326111750000072
为向上取整运算。
S303:读取微服务在日志库中的业务统计数据与容器的运行数据。
S304:根据微服务的响应时间以及容器运行数据与上个月同天比较,若超过阈值,则按扩容规则进行扩容。
根据微服务的响应时间进行扩容:
微服务在上个月同天的容器数量下,判断微服务中服务响应时间的中值是否有超过规定响应时间阈值的130%,如有则需要扩容,否则不需要扩容。
该扩容规则为:
Figure BDA0003326111750000081
其中,C′Z为定时根据微服务的响应时间进行扩容后的容器数量;
C为微服务在上个月同天的容器数量;
Zm为微服务中服务响应时间的中值;
Z为微服务中服务响应时间的阈值;
Figure BDA0003326111750000082
为向上取整运算。
例如当前微服务部署容器的个数是3,响应中值总数高于规定阈值的30%,则增加的容器数量是3+3*30%=3.9,向上取整后就是4个,微服务的这容器数量就会当前的3个容器扩充到4个容器。
根据微服务的容器运行数据进行扩容:
微服务在上个月同天的容器数量下,判断微服务容器的CPU使用率超过指定的阈值(CPU使用率60%)的持续时间占整个CPU服务时间的比例,若占比超过额定比例,则进行扩容,否则不进行扩容。
该扩容规则为:
Figure BDA0003326111750000083
其中,C′T为定时根据微服务的容器运行数据进行扩容后的容器数量;
C为微服务在上个月同天的容器数量;
Tm为微服务容器的CPU使用率超过指定的阈值的持续时间;
T为整个CPU服务时间;
Figure BDA0003326111750000084
为向上取整运算。
定时计算的最终微服务容器数量为:
C′S=max(C′Z,C′T)
其中,C′S为定时计算的最终微服务容器数量。
定量的定时计算,根据历史数据预测计算当天是否是高峰时期,进行微服务容器的扩缩容计算。在到达高峰期前进行微服务扩缩容。
S4:将一天均分为若干个周期,根据实时获取的业务数据日志和容器运行运输,实时计算下一周期的微服务扩缩容。
在本实施例中,以每个小时为一个周期。ERP等管理系统的数据处理均是有连续性的,前一个小时的业务会对下一个小时的业务处理产生直接影响,当天每小时均会对前一小时的历史数据进行计算,汇总分析业务日志数据与容器内的CPU,内存使用率等数据,通过计算来决定下一个小时容器的数量。
S401:每个小时读取微服务列表,循环计算所有的微服务。
S402:读取前一个小时的历史数据。
读取一个小时前的历史数据,在本实施例中,历史数据是本微服务的前一个小时的数据,或是相关的微服务的数据,由于企业用户的业务使用过程中,相关上游的一个微服务的请求数增加,也会导致后续下游业务的微服务的请求数的增加,所以能够读取相关的业务日志数据来预判。
S403:根据实时获取微服务的响应时间、请求总数和容器的使用率与上一周期比较,若超过阈值,则按扩容规则进行扩容。
根据微服务的响应时间进行扩容:
判断当前微服务中服务响应时间的中值是否有超过上一周期微服务中服务响应时间的中值的130%,如有则需要扩容,否则不需要扩容。
该扩容规则为:
Figure BDA0003326111750000091
其中,C′Zh为实时根据微服务的响应时间进行扩容后的容器数量;
Ch为微服务在上一周期的容器数量;
Zm为微服务中服务响应时间的中值;
Zh为上一周期微服务中服务响应时间的中值;
Figure BDA0003326111750000092
为向上取整运算。
根据微服务的请求总数进行扩容:
判断每分钟微服务的请求总数是否有超过上一周期的微服务的请求总数的130%,如有,则需要扩容;否则不需要扩容。
该扩容规则为:
Figure BDA0003326111750000101
其中,C′q为根据微服务的请求总数进行扩容后的容器数量;
C为微服务在上一周期的容器数量;
Qm为每分钟微服务的请求总数;
Q为上一周期的微服务的请求总数;
Figure BDA0003326111750000102
为向上取整运算。
微服务容器增加的数量,是通过当前容器的数量乘以扩容规则中历史同期请求总数的比例,计算结果向上取整。例如当前微服务部署容器的个数是3,请求总数大于历史同期数据的30%,则增加的容器数量是3+3*30%=3.9,向上取整后就是4个,微服务的这容器数量就会当前的3个容器扩充到4个容器。
根据微服务的容器的使用率进行扩容:
将上一周期以及当前周期的微服务中容器中CUP使用率拟合成曲线,以时间为X轴,以CPU使用率为Y轴。
构建比较框,以一分钟的时间段为宽度分别构建左右边框,以该时间段内的最大值为上边框,以该时间段内的最小值为下边框。
判断当前周期与上一周期的同一时间段内,曲线与下边框之间面积的面积比:
Figure BDA0003326111750000103
其中,PSi为一个周期内第i个时间段面积比;
SNi为当前周期第i个时间段曲线与下边框之间的面积;
SLi为上一周期第i个时间段曲线与下边框之间的面积。
判断PSi大于等于130%的数量是否大于20个;若是,则需要扩容;否则不需要扩容;该扩容规则为:
Figure BDA0003326111750000104
其中,C′U为根据微服务的容器的使用率进行扩容后的容器数量;
C为微服务在上一周期的容器数量;
np为PSi大于等于130%的数量;
α为比例系数;
Figure BDA0003326111750000111
为向上取整运算;
Figure BDA0003326111750000112
其中,K为当前周期的时间段总数;
实时计算的最终微服务容器数量为:
C′R=max(C′Zh,C′q,C′U)
其中,C′R为实时计算的最终微服务容器数量。
通过定量的实时计算,预测下一个小时的微服务容器数量,在下一周期高峰到来前进行容器数量的调整。
S5:在指定的时间节点进行微服务对应容器的扩缩容操作。
本方案根据集团企业用户处理业务存在高峰低谷这一客观事实,通过对业务系统的业务日志数据进行采集,就可以动态的分析出某类业务处理的高峰低谷时间段,在高峰期到来之前预先分配业务对应微服务所需要的资源,自动调整好业务微服务对应容器的数量,容器预先分配,因此即使容器中的微服务启动时间长,在业务高峰期到来之前也已经启动完成,不会影响在高峰期用户的使用的体验。
由于是在业务高峰期没有来到的时候就进行扩容了,对于扩容需要的硬件资源可以统筹的安排,如果资源不够的情况可以有足够的时间可以硬件资源的扩容。
在业务的高峰没有来到的时候进行扩容,扩容的机制算法是按照满足最高性能的要求来进行扩容的,因此对业务高峰期已经有了充分的预估,并已经进行了扩容了,因此不会出现性能毛刺现象。
应理解,实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

Claims (10)

1.一种微服务环境下基于业务预测动态扩容的方法,其特征在于,包括以下步骤:
S1:将一个或多个微服务的业务数据通过指定的日志格式写入日志库;业务预测动态扩缩容引擎将每个微服务对应的容器运行数据写入到日志库;
S2:业务预测动态扩缩容引擎根据日志库中的日志计算指标,生成业务统计数据;
S3:根据历史同期的微服务容器数,结合日志库的业务统计数据与容器的运行数据,定时计算当天的微服务扩缩容;
S4:将一天均分为若干个周期,根据实时获取的业务数据日志和容器运行运输,实时计算下一周期的微服务扩缩容。
2.根据权利要求1所述的一种微服务环境下基于业务预测动态扩容的方法,其特征在于,所述的指定的日志格式为【记录主键,功能URL,调用功能的用户,请求ID,微服务名称,记录日志的时间,响应的时间】。
3.根据权利要求1或2所述的一种微服务环境下基于业务预测动态扩容的方法,其特征在于,所述的容器运行数据的日志格式为【记录主键,记录日志的时间,微服务名称,CUP的使用率,内存使用率】。
4.根据权利要求1所述的一种微服务环境下基于业务预测动态扩容的方法,其特征在于,所述的指标包括每分钟的系统功能请求数;每分钟内系统功能响应时间的平均数、最大值、最小值和中值,以及大于平均数的记录数、大于阈值的记录数;每分钟微服务容器的CPU使用情况的平均值、最大值、最小值、以及大于平均数的记录数、大于阈值的记录数。
5.根据权利要求1所述的一种微服务环境下基于业务预测动态扩容的方法,其特征在于,所述的步骤S3包括以下步骤:
S301:每天0点读取微服务列表,循环所有微服务;
S302:读取微服务对应的上个月同天的微服务容器数量,计算当前微服务容器数据与上个月同天的微服务容器数量的差值ε;
ε=CN-C
若差值ε≥0,
Figure FDA0003326111740000011
直接进入步骤S4;
若差值ε<0,进入步骤S303;
其中,CN为微服务当前的容器数量;
C为微服务在上个月同天的容器数量;
C′S为定时计算的最终微服务容器数量;
Figure FDA0003326111740000024
为向上取整运算;
S303:读取微服务在日志库中的业务统计数据与容器的运行数据;
S304:根据微服务的响应时间以及容器运行数据与上个月同天比较,若超过阈值,则按扩容规则进行扩容。
6.根据权利要求5所述的一种微服务环境下基于业务预测动态扩容的方法,其特征在于,根据微服务的响应时间进行扩容;微服务在上个月同天的容器数量下,判断微服务中服务响应时间的中值是否有超过规定响应时间阈值的130%,如有则需要扩容,否则不需要扩容;该扩容规则为:
Figure FDA0003326111740000021
其中,C′Z为定时根据微服务的响应时间进行扩容后的容器数量;
C为微服务在上个月同天的容器数量;
Zm为微服务中服务响应时间的中值;
Z为微服务中服务响应时间的阈值;
Figure FDA0003326111740000022
为向上取整运算;
根据微服务的容器运行数据进行扩容;微服务在上个月同天的容器数量下,判断微服务容器的CPU使用率超过指定的阈值的持续时间占整个CPU服务时间的比例,若占比超过额定比例,则进行扩容,否则不进行扩容;该扩容规则为:
Figure FDA0003326111740000023
其中,C′T为定时根据微服务的容器运行数据进行扩容后的容器数量;
C为微服务在上个月同天的容器数量;
Tm为微服务容器的CPU使用率超过指定的阈值的持续时间;
T为整个CPU服务时间;
Figure FDA0003326111740000031
为向上取整运算;
定时计算的最终微服务容器数量为:
C′S=max(C′Z,C′T)
其中,C′S为定时计算的最终微服务容器数量。
7.根据权利要求1或5或6所述的一种微服务环境下基于业务预测动态扩容的方法,其特征在于,以每个小时为一个周期,所述的步骤S4具体包括以下步骤:
S401:每个小时读取微服务列表,循环计算所有的微服务;
S402:读取前一个小时的历史数据;
S403:根据实时获取微服务的响应时间、请求总数和容器的使用率与上一周期比较,若超过阈值,则按扩容规则进行扩容。
8.根据权利要求7所述的一种微服务环境下基于业务预测动态扩容的方法,其特征在于,所述的历史数据为本微服务的前一个小时的历史数据或相关上下游业务的微服务的前一个小时的历史数据。
9.根据权利要求7所述的一种微服务环境下基于业务预测动态扩容的方法,其特征在于,根据微服务的响应时间进行扩容;判断当前微服务中服务响应时间的中值是否有超过上一周期微服务中服务响应时间的中值的130%,如有则需要扩容,否则不需要扩容;该扩容规则为:
Figure FDA0003326111740000032
其中,C′Zh为实时根据微服务的响应时间进行扩容后的容器数量;
Ch为微服务在上一周期的容器数量;
Zm为微服务中服务响应时间的中值;
Zh为上一周期微服务中服务响应时间的中值;
Figure FDA0003326111740000043
为向上取整运算;
根据微服务的请求总数进行扩容;判断每分钟微服务的请求总数是否有超过上一周期的微服务的请求总数的130%,如有,则需要扩容;否则不需要扩容;该扩容规则为:
Figure FDA0003326111740000041
其中,C′q为根据微服务的请求总数进行扩容后的容器数量;
C为微服务在上一周期的容器数量;
Qm为每分钟微服务的请求总数;
Q为上一周期的微服务的请求总数;
Figure FDA0003326111740000042
为向上取整运算。
10.根据权利要求9所述的一种微服务环境下基于业务预测动态扩容的方法,其特征在于,根据微服务的容器的使用率进行扩容;
将上一周期以及当前周期的微服务中容器中CUP使用率拟合成曲线,以时间为X轴,以CPU使用率为Y轴;
构建比较框,以一分钟的时间段为宽度分别构建左右边框,以该时间段内的最大值为上边框,以该时间段内的最小值为下边框;
判断当前周期与上一周期的同一时间段内,曲线与下边框之间面积的面积比;
Figure FDA0003326111740000051
其中,PSi为一个周期内第i个时间段面积比;
SNi为当前周期第i个时间段曲线与下边框之间的面积;
SLi为上一周期第i个时间段曲线与下边框之间的面积;
判断PSi大于等于130%的数量是否大于20个;若是,则需要扩容;否则不需要扩容;该扩容规则为:
Figure FDA0003326111740000052
其中,C′U为根据微服务的容器的使用率进行扩容后的容器数量;
C为微服务在上一周期的容器数量;
np为PSi大于等于130%的数量;
α为比例系数;
Figure FDA0003326111740000053
为向上取整运算;
Figure FDA0003326111740000054
其中,K为当前周期的时间段总数;
实时计算的最终微服务容器数量为:
C′R=max(C′Zh,C′q,C′U)
其中,C′R为实时计算的最终微服务容器数量。
CN202111269174.4A 2021-10-28 2021-10-28 一种微服务环境下基于业务预测动态扩容的方法 Pending CN114064204A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111269174.4A CN114064204A (zh) 2021-10-28 2021-10-28 一种微服务环境下基于业务预测动态扩容的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111269174.4A CN114064204A (zh) 2021-10-28 2021-10-28 一种微服务环境下基于业务预测动态扩容的方法

Publications (1)

Publication Number Publication Date
CN114064204A true CN114064204A (zh) 2022-02-18

Family

ID=80235997

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111269174.4A Pending CN114064204A (zh) 2021-10-28 2021-10-28 一种微服务环境下基于业务预测动态扩容的方法

Country Status (1)

Country Link
CN (1) CN114064204A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114548928A (zh) * 2022-02-22 2022-05-27 中国工商银行股份有限公司 申请审核方法、装置、设备及介质
CN114666615A (zh) * 2022-03-10 2022-06-24 北京达佳互联信息技术有限公司 资源调配方法、装置、服务器、程序和存储介质
CN115022173A (zh) * 2022-05-10 2022-09-06 度小满科技(北京)有限公司 一种服务扩容的方法、装置、设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114548928A (zh) * 2022-02-22 2022-05-27 中国工商银行股份有限公司 申请审核方法、装置、设备及介质
CN114666615A (zh) * 2022-03-10 2022-06-24 北京达佳互联信息技术有限公司 资源调配方法、装置、服务器、程序和存储介质
CN114666615B (zh) * 2022-03-10 2024-04-16 北京达佳互联信息技术有限公司 资源调配方法、装置、服务器、程序和存储介质
CN115022173A (zh) * 2022-05-10 2022-09-06 度小满科技(北京)有限公司 一种服务扩容的方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN114064204A (zh) 一种微服务环境下基于业务预测动态扩容的方法
US9356846B2 (en) Automated upgrading method for capacity of IT system resources
EP1812863B1 (en) Reporting of abnormal computer resource utilization data
CN111985726B (zh) 资源数量预测方法、装置、电子设备及存储介质
CN106407190A (zh) 一种事件记录查询方法及装置
CN105700948A (zh) 一种用于在集群中调度计算任务的方法与设备
CN112187512B (zh) 一种基于流量监控的端口自动扩容方法、装置和设备
CN104462432A (zh) 自适应的分布式计算方法
WO2020172852A1 (en) Computing resource scheduling method, scheduler, internet of things system, and computer readable medium
CN112689007B (zh) 资源分配方法、装置、计算机设备和存储介质
CN110147470B (zh) 一种跨机房数据比对系统及方法
Lumpe et al. On estimating minimum bids for Amazon EC2 spot instances
CN111800807A (zh) 一种基站用户数量告警的方法及装置
CN109002381A (zh) 进程通信监控方法、电子装置及计算机可读存储介质
CN113760640A (zh) 监控日志处理方法、装置、设备及存储介质
CN116010228A (zh) 面向网络安全扫描的时间预估方法及装置
CN114520773B (zh) 一种服务请求的响应方法、装置、服务器及存储介质
CN112003900B (zh) 实现分布式系统中高负载场景下服务高可用的方法、系统
CN111435317B (zh) 数据处理方法、计算设备及存储介质
CN111092755A (zh) 一种基于资源占用的边缘服务迁移仿真方法
CN116450485B (zh) 一种应用性能干扰的检测方法和系统
CN117762577B (zh) 基于网格化实现的数字产品区域调度方法及系统
CN112202607B (zh) 日志消息的统计计算方法、服务器及存储介质
CN114868112A (zh) 用于云计算的可变作业资源表示与调度
CN115474203A (zh) 区域补点规划方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination