CN114650297A - 一种多微服务调用环境下自适应自动缩放方法及系统 - Google Patents

一种多微服务调用环境下自适应自动缩放方法及系统 Download PDF

Info

Publication number
CN114650297A
CN114650297A CN202210150833.0A CN202210150833A CN114650297A CN 114650297 A CN114650297 A CN 114650297A CN 202210150833 A CN202210150833 A CN 202210150833A CN 114650297 A CN114650297 A CN 114650297A
Authority
CN
China
Prior art keywords
service
micro
time
computing power
scaling
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.)
Granted
Application number
CN202210150833.0A
Other languages
English (en)
Other versions
CN114650297B (zh
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.)
Zhejiang University ZJU
Binhai Industrial Technology Research Institute of Zhejiang University
Original Assignee
Zhejiang University ZJU
Binhai Industrial Technology Research Institute of Zhejiang University
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 Zhejiang University ZJU, Binhai Industrial Technology Research Institute of Zhejiang University filed Critical Zhejiang University ZJU
Priority to CN202210150833.0A priority Critical patent/CN114650297B/zh
Publication of CN114650297A publication Critical patent/CN114650297A/zh
Application granted granted Critical
Publication of CN114650297B publication Critical patent/CN114650297B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种多微服务调用环境下自适应自动缩放方法及系统,包括:根据微服务的压测时延情况,确定每个微服务初始的服务算力常数值;在微服务运行时,基于服务算力常数值与服务请求流量情况,计算每个微服务的实时服务算力;通过对微服务状态的监测,自适应调整微服务的预期服务算力;对比每个微服务的实时服务算力和自适应调整的预期服务算力,决策微服务实例是否需要缩放,当条件满足缩放条件时,对微服务的实例进行缩放;基于缩放决策,实时调整微服务的服务算力,将流量比率反映到下游服务,递归地调整下游服务的服务算力。利用本发明,可以在复杂微服务集群中,针对服务请求和时延情况动态地调整微服务的实例数量。

Description

一种多微服务调用环境下自适应自动缩放方法及系统
技术领域
本发明属于微服务领域,尤其是涉及一种多微服务调用环境下自适应自动缩放方法及系统。
背景技术
kubernetes是Google公司基于Borg系统开源出来的容器编排调度引擎,提供了一个规范用以描述集群的架构。kubernetes中原生的水平自动扩缩(Horizontal PodAutoscaler)可以针对资源的监控,设定度量指标来进行自动拓缩容。但原生HPA技术面向的是静态的规则,依赖于维护人员的经验值设定,当服务负载出现波动时,并不能很及时或者准确地将微服务实例数调整到最佳。
在复杂微服务调用环境下,多个服务可能存在上下游调用关系,单一的规则制定不能很好的响应服务负载的变动。当上游进行拓缩容的同时,下游微服务的负载会受到一定的影响。为满足服务质量的需求,同时保持实例数量不被浪费,针对微服务调用链上的缩放方法,可以通过一些时序预测的手段,介入到微服务的实例调整中。这里提到的微服务实例通常面向的是无状态计算节点,而有状态存储节点一般不考虑进行缩放或者不能简单地进行水平方向上的拓容。
如公开号为CN111130908A的中国专利文献公开了一种基于调用流量分析预测的微服务动态聚合拆分系统,包括:调用链流量分析统计模块,该模块根据整个微服务系统的调用链统计信息,并分析得出每个服务的调用量随时序的变化和每个微服务之间的调用拓扑关系进而提供数据支持;流量趋势智能预测模块,该模块基于数据支持采用趋势预测模型提前做出流量趋势变化的实时决策;微服务自动部署扩缩容模块,该模块基于实时决策,对不同的微服务实例进行动态的扩容或缩容;以及微服务路径扫描和聚合拆分模块,该模块通过扫描微服务的路径,对微服务进行动态的拆分或聚合。
现如今服务等级协议(SLA)作为服务提供者的重要指标,包含可用性、准确性、系统容量和时延。当微服务集群收到网关转发的请求时,每个微服务除了处理自己的业务需要占据计算时间,还要考虑到微服务之间的服务调用。当上游业务受到不同的流量负载时,下游的微服务也会受到流量负载带来的影响。若出现请求堆积、丢失等情况,服务的时延就会较大幅度的提高,影响到用户的体验。此时若能根据负载的预测,再加上考虑到单个服务实例个数的修改对下游链路造成的影响,能够使微服务集群内部动态地进行调整。因此,亟需设计一种可以根据负载情况,自动对微服务实例数量进行增减的方法。
发明内容
本发明提供了一种多微服务调用环境下自适应自动缩放方法,可以在复杂微服务集群中,针对服务请求和时延情况动态地调整微服务的实例数量。
一种多微服务调用环境下自适应自动缩放方法,包括以下步骤:
(1)根据微服务的压测时延情况,确定每个微服务初始的服务算力常数值h;
(2)在微服务运行时,基于服务算力常数值h与服务请求流量情况,计算每个微服务的实时服务算力HM,公式为:HM=h×R,其中,R代表微服务接收的请求量;
(3)通过对微服务状态的监测,自适应调整微服务的预期服务算力HP;
(4)对比每个微服务的实时服务算力HM和自适应调整的预期服务算力HP,决策微服务实例是否需要缩放,当条件满足缩放条件时,对微服务的实例进行缩放;
(5)基于缩放决策,实时调整微服务的服务算力,将流量比率反映到下游服务,递归地调整下游服务的服务算力。
进一步地,步骤(1)的具体过程为:
采用流量压测的方法,逐步增加请求量,同时记录关键时延参数p50、p75和p95,拟合请求量R以及对应服务算力常数h的曲线;
当请求量超过服务承载上限后,此时成功的请求数到达一个极大值点,对应的时延参数曲线出现斜率激增,利用此点的时延数据,计算初始的服务算力常数值h,公式如下:
Figure BDA0003503566310000031
其中,P95代表时延为后5%的请求平均响应时间,p75代表时延为后25%的请求平均响应时间,p50作为时延中位数。
步骤(3)的具体过程为:
根据实时服务算力常数值与预计算好的服务算力常数值进行比对;在一个时间周期T内,当存在实时服务算力小于预期服务算力的情况,且周期内服务算力常数的监测平均值位于平稳区间,则自适应地对预期服务算力进行增加调整;当存在实时服务算力大于预期服务算力,且周期内服务算力常数的监测平均值超过平稳区间,则自适应地对预期服务算力进行缩减调整。
周期内服务算力常数的监测平均值的公式如下:
Figure BDA0003503566310000041
Figure BDA0003503566310000042
为周期T内服务算力常数的监测平均值,Ci,T为周期T内的采样次数,
Figure BDA0003503566310000043
表示周期T内微服务Si的平均请求数,HMi,t表示周期T内微服务Si在时刻t的实时服务算力,i表示微服务的编号;
周期内服务算力常数的监测平均值位于平稳区间时,满足:
Figure BDA0003503566310000044
自适应地对预期服务算力进行增加调整为:
Figure BDA0003503566310000045
周期内服务算力常数的监测平均值超过平稳区间时,满足:
Figure BDA0003503566310000046
自适应地对预期服务算力进行缩减调整为:
Figure BDA0003503566310000047
其中,hi为微服务Si的初始服务算力常数值,HPi为微服务Si的预期服务算力值。
步骤(4)中,决策微服务实例是否需要缩放的具体过程为:
若在一个时间窗口ΔT内,实时服务算力HM超过自适应的预期服务算力HP的比例超过设定阈值上限,则决策对该微服务实例进行拓容;若在一个时间窗口内,实时服务算力HM低于自适应的预期服务算力HP的比例低于设定阈值下限,则决策对该微服务实例进行缩容。
在一个时间窗口ΔT内,设定一个超期阈值α作为决策拓容的参考,另一个超期阈值β作为决策缩容的参考;
时间窗口ΔT设为5分钟,监控值计算的间隔为2秒,以Dt作为时间窗口ΔT内第t时间间隔下的决策统计量:
Figure BDA0003503566310000048
若当前窗口表示式
Figure BDA0003503566310000049
则进行拓容操作,
若当前窗口表示式
Figure BDA0003503566310000051
则进行缩容操作。
步骤(5)的具体过程为:
基于上游至下游流量数据,递归地将上游微服务缩放决策实例数带来的变化转换到的流量的变化上,反馈到下游服务中,实时地更新下游服务的计算流量值作为下游服务的流量,以调整下游服务的服务算力,再根据缩放决策方法,调整下游链路上微服务的实例数量。
本发明还提供了一种多微服务调用环境下自适应自动缩放系统,包括服务算力常数初始模块、服务算力自适应计算模块、微服务缩放决策模块和链路缩放调整模块,其中,服务算力自适应计算模块、微服务缩放决策模块和链路缩放调整模块之间通过消息机制传递信息;
所述的服务算力常数初始模块用于根据微服务的压测时延情况,确定每个微服务初始的服务算力常数值h;
服务算力自适应计算模块用于通过对微服务状态的监测,自适应调整微服务的预期服务算力HP;
所述的微服务缩放决策模块用于根据实时服务算力HM和自适应调整的预期服务算力HP,决策微服务实例是否需要缩放;
所述的链路缩放调整模块用于调整微服务集群中下游服务的实例。
与现有技术相比,本发明具有以下有益效果:
1、本发明综合考虑了微服务响应时间以及微服务请求数量,以自适应的方式定量且动态地去衡量微服务实例的承载能力。根据服务算力指标以及监测指标,可以对微服务实例的缩放进行决策。即使微服务调用者没有调整微服务实例数目的先验经验,该方法也可以由于自适应服务算力的加入完成对于服务实例数目的控制以及管理。
2、本发明考虑到上游微服务实例缩放对于下游微服务节点的影响,因服务算力指标结合了请求数,可以在上游服务做出缩放后,实时地将实例数变化带来的请求数影响传递到下游服务,帮助下游服务应对上游的变化快速做出反应。
附图说明
图1为本发明一种多微服务调用环境下自适应自动缩放系统的模块图;
图2为单微服务时延、请求上限与总请求数量关系示意图;
图3为服务算力常数的初始化方法流程图;
图4为自适应调整服务算力的方法流程图;
图5为微服务缩放决策的方法流程图;
图6为微服务链路调整的方法流程图;
图7为微服务调用流量比率示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步详细描述,需要指出的是,以下所述实施例旨在便于对本发明的理解,而对其不起任何限定作用。
本发明可以在各种容器编排调度引擎中实行,如背景技术中提到的kubernetes。在kubernetes中,对应的缩放对象则是pod。pod是kubernetes中最小的调度、计划、管理、创建单元。一个pod相当于在容器环境下的逻辑虚拟计算机。一个pod中可能包含多个应用,而本发明提到的放缩对象是抽象的微服务实例,每个微服务在kubernetes环境下以pod方式进行部署与管理。部署于pod中的一个微服务,以pod的处理能力作为微服务的处理能力。当pod的实例数进行扩展的时候,相当于一个微服务获得更多的计算资源,可以进行更多的逻辑运算,能够处理更多到达该微服务的请求。
如图1所示,微服务实例集群通过kubernetes进行编排管理。Istio Gateway包含监控和配置路由规则的Istio特性来管理集群的流量,作为整个集群的流量入口。各个微服务通过Istio服务网络进行代理,流量由Istio统一管理,其中Mixer组件自动地收集所有的网格内流量,并生成新的指标,由时序数据库做指标的采集存储和查询组件。收集的参数包含每个微服务的请求流量统计、请求时延统计以及每个服务对下呀服务调用的请求流量统计。整个微服务调用环境下自适应自动缩放系统,包含四个模块:服务算力常数初始模块,服务算力自适应计算模块,多微服务缩放决策模块,链路缩放调整模块。后三个模块间通过消息队列进行解耦。
自动缩放需要根据整体服务的状态进行决策。首先需要对整体服务的指标以及情况进行收集,包括服务时延监控详情,每个微服务对于下游微服务的请求调用量,当前微服务的请求调用量。时延作为重要的服务体验指标,在实时动态调整服务中较为直观的反应了微服务当前的响应情况。由于不同的服务处理请求的时延特征具有一定差异,可以单个服务正常情况下的时延情况做一个统计值,当做一个微服务的特征。
根据提到的服务算力常数值hi,在微服务进行正式部署之前进行确定。采用流量压测的方法,逐步增加请求量,同时记录关键时延参数p50,p75,p95,拟合请求量R以及对应服务算力常数h的曲线。如图2所示,当请求量找过服务承载上限后,会出现大量的请求丢失、超时情况,此时成功的请求数将到达一个极大值点,对应的时延参数曲线将出现斜率激增,而p95的增加幅度最大,通过将时延成比例的方式,在达到服务临界上限时,这个时延比例就会出现极大的变化。考虑到不同服务的特性不同,因此采用三段时延作为服务算力常数的参考。图3所示的流程对应的服务算力常数初始化模块负责根据不同的微服务Si,确定不同微服务的服务常数hi。
其中P95代表时延为后5%的请求平均响应时间,p75作为后25%的请求响应时间,p50作为时延中位数。
第i个服务Si的正常处理能力常数可以表述为:
Figure BDA0003503566310000081
为综合考虑到微服务时延和能够处理的请求数,微服务Si接受的请求数定义为Ri,那么微服务Si的实时服务算力HMi定义为:
HMi=hi×Ri
根据处理能力常数反映的整体服务时延情况以及整体微服务的请求总量,转化成实时微服务的处理能力。当时延分布不稳定,高时延请求占比提高时,处理能力常数就会减小,相应的微服务Si的实时处理能力HMi值也会下降;当微服务处理情况较为稳定,请求时延分布较为均匀,整体请求都能被叫为快速地响应时,处理能力常数同时增加,微服务Si的实时处理能力HMi值也会上升。微服务Si受到的并发请求数也是一个对微服务实时服务算力HMi产生影响的关键值。在一定程度上,对于一个微服务来说,并发数越高,则实时服务算力越强。涉及到自动缩放问题时,实例数的增加会使得微服务的服务算力提高。而不同的微服务之间的服务算力不尽相同,随着实例数的变化也会改变,需要有个预期服务算力值作为评判缩放情况的标准。
根据提到的预期服务算力值,在微服务实例运行的过程中,图1中提到的服务算力自适应模块动态地去维护预期服务算力值HPi。微服务的实时处理能力HMi可以通过实时指标的度量进行计算。将微服务实时能力与预期服务算力值进行对比,超过一定阈值,并具有一定的置信度,则对微服务实例数进行拓展;相反,低于一定阈值则对微服务实例数进行缩减。当一个窗口内处理能力常数高于hi时,可以认为部分接口在超出时间比例的情况下才能得到响应,或者出现超时的情况导致处理能力常数下降。
其中所述的自适应调整方法,如图4所示。首先冷启动的时候,获取初始化服务算力值HPi以及服务算力常数值。
若在一个时间周期T内,共计有Ci,T次采样,
Figure BDA0003503566310000091
为T周期内的服务周期常数监测平均值:
Figure BDA0003503566310000092
微服务Si的实时服务算力值HMi>HPi,且此周期内服务算力常数值满足:
Figure BDA0003503566310000093
则对HPi进行自适应增加:
Figure BDA0003503566310000094
若在一个时间周期T内,微服务Si的实时服务算力值HMi<HPi,且此时服务算力常数值:
Figure BDA0003503566310000095
则对HPi进行自适应减少:
Figure BDA0003503566310000096
在各个微服务进行部署之前,需要事先确定各个指标参数与具体实例伸缩策略之间的映射关系。也就是确定在一定条件环境下,是维持当前微服务的实例数,还是针对状况进行缩放。理想状况是在最少的服务实例数下,请求能够有尽量低并满足SLA的时延。本方法采用自适应确定服务算力值HPi的方式,根据服务算力自适应计算模块提供的方法,动态调整微服务Si的服务算力值HPi。缩放策略则通过自适应的HPi与实时量HMi进行决策。当微服务部署完成后,HPi通过hi调整,逐渐稳定。在一个时间窗口T内,设定一个超期阈值α作为统计量HMi扩张的参考,超期阈值β作为统计量HMi决策缩容的参考。时间窗口预设值T设为5分钟,监控值计算的间隔i为2秒,以Dt作为窗口T内第t时间间隔下的决策统计量:
Figure BDA0003503566310000097
若当前窗口表示式
Figure BDA0003503566310000098
则进行拓容操作。
若当前窗口表示式
Figure BDA0003503566310000101
则进行缩容操作。
当根据提到的策略将微服务Si缩放后,Ni作为微服务Si的实例数,Ni′作为更新后服务Si的实例数。HPi作为衡量服务算力的自适应值,当缩放发生后,HPi需要根据实例数进行更新。
Figure BDA0003503566310000102
通过以上方式服务算力值都够快速响应,再根据服务算力自适应模块提供的方法自适应调整,提高自适应方法的响应效率。
收集的下游服务调用量可以作为响应链路缩放的度量。单个微服务对于下游的调用总量记为Pi,微服务i对于微服务j的调用量记做Ri,j。每个服务对于下游的请求比率为
Figure BDA0003503566310000103
将时间窗口内的服务调用量通过时序数据库进行记录,可以根据每个微服务在指定时间窗口T内,对于下游不同微服务的调用比率。所述的请求调用比率,将在图1提到的链路缩放调整模块中用作实时传递上游服务实例数改变情况,动态反馈给下游的服务。
当多服务决策模块监测到服务需要进行缩放时,就会通过kubernetes缩放的适配器,将实例数的预测调整到集群中。当该服务的实例数被调整之后,触发链路缩放调整模块,实时的在这个时间周期中,将上游的服务实例数变化,反应给调用链路中下游的多服务缩放决策模块。
多服务缩放决策模块如图6所示的方法,每个微服务根据都包含独立的缩放策略,根据不同的状态进行实时预测,并做出缩放决策。当多服务决策模块监测到服务需要进行缩放时,就会通过kubernetes缩放的适配器,将实例数的预测调整到集群中,同时将决策前后的实例数以及服务信息加入到实时更新队列,触发链路缩放调整模块,实时的在这个时间周期中,将上游的服务实例数变化,反应给调用链路中下游的多服务缩放决策模块。
链路缩放调整模块的核心功能,是将微服务实例数量改变的情况,即微服务处理能力的变化,传入到下游。链路上的各个微服务被抽象成一个节点,节点可以有多个实例,每个节点具有不同的服务处理能力。每个服务可以由Si来表示。如图7所示,各个微服务之间的调用,可以通过有向边进行抽象,比如Sa到Sb节点的有向边,可以表示服务a到服务b之间的调用请求数量。服务间的调用,一般可以由单位时间整体的调用数量、平均的调用时延进行定量表述,图7中如服务a、b之间的请求调用数量,用Ra,b表示。微服务集群的服务入口,通常要经过网关层进行转发。若将网关纳入到整体的服务链路之中,整个多微服务群可以看成是一个有向无环图,请求到达网关后,被分发到指定微服务节点进行处理。处理过程中,微服务之间可能会出现互相之间的调用,经过整个链路的处理后,将结果反馈给调用客户端一方。服务间的调用,最终都会返回到调用入口侧,比如微服务1调用了微服务2,微服务2继续调用微服务3,最终微服务3处理完成后,将结果反馈到微服务2,微服务2又将结果反馈到微服务1,链路是1->2->3->2->1,但是整个过程可以抽象成从微服务1到微服务2再到微服务3。在考虑微服务实例自动缩放这种情况之下,上游对下游的请求总量以及时延需要主要纳入考虑,因此建立有向无环图就能切合服务实例缩放这一点。
链路缩放调整模块具体过程如图6所示,多服务缩放决策模块根据预测,将服务的实例数,由Ni改变至N′i,微服务Si到微服务Sj之间的流量变化为
Figure BDA0003503566310000111
对应根据流量变化计算Sj服务的实时服务算力HPj,更新Sj服务的实时服务算力值,将上游拓缩容的影响反映到下游服务。假设服务a的下游包含服务b,c,d,那么服务a的实例数决策将首先影响到下游的服务,下游的b,c,d服务的多服务缩放决策模块通过链路缩放调整模块收集到上游的信息后,将信息纳入到b,c,d服务本身决策的考量之中。若下游b,c,d服务需要进行缩放,则链路缩放调整模块相继介入到决策之中,以类似泛洪的方式,递归地将缩放信息传递至下游服务。
根据图6所述链路缩放调整模块,调整下游的流量计算值
Figure BDA0003503566310000121
Figure BDA0003503566310000122
此时利用预测量将R′j代入到实时服务算力中,HMj=hj×RC′j。运用这种替代,将上游的流量变化快速地反映到下游服务的服务算力决策量中,提高下游服务缩放决策的反映速度,使得下游服务在链路调整的过程中,利用流量计算值应对上游缩放带来的流量变化。完成服务j的实时服务能力HMj后,将实时服务能力HMj加入到实时服务能力队列中。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台电子设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述的实施例对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的具体实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换,均应包含在本发明的保护范围之内。

Claims (8)

1.一种多微服务调用环境下自适应自动缩放方法,其特征在于,包括以下步骤:
(1)根据微服务的压测时延情况,确定每个微服务初始的服务算力常数值h;
(2)在微服务运行时,基于服务算力常数值h与服务请求流量情况,计算每个微服务的实时服务算力HM,公式为:HM=h×R,其中,R代表微服务接收的请求量;
(3)通过对微服务状态的监测,自适应调整微服务的预期服务算力HP;
(4)对比每个微服务的实时服务算力HM和自适应调整的预期服务算力HP,决策微服务实例是否需要缩放,当条件满足缩放条件时,对微服务的实例进行缩放;
(5)基于缩放决策,实时调整微服务的服务算力,将流量比率反映到下游服务,递归地调整下游服务的服务算力。
2.根据权利要求1所述的多微服务调用环境下自适应自动缩放方法,其特征在于,步骤(1)的具体过程为:
采用流量压测的方法,逐步增加请求量,同时记录关键时延参数p50、p75和p95,拟合请求量R以及对应服务算力常数h的曲线;
当请求量超过服务承载上限后,此时成功的请求数到达一个极大值点,对应的时延参数曲线出现斜率激增,利用此点的时延数据,计算初始的服务算力常数值h,公式如下:
Figure FDA0003503566300000011
其中,P95代表时延为后5%的请求平均响应时间,p75代表时延为后25%的请求平均响应时间,p50作为时延中位数。
3.根据权利要求1所述的多微服务调用环境下自适应自动缩放方法,其特征在于,步骤(3)的具体过程为:
在一个时间周期T内,当存在实时服务算力小于预期服务算力的情况,且周期内服务算力常数的监测平均值位于平稳区间,则自适应地对预期服务算力进行增加调整;当存在实时服务算力大于预期服务算力,且周期内服务算力常数的监测平均值超过平稳区间,则自适应地对预期服务算力进行缩减调整。
4.根据权利要求3所述的多微服务调用环境下自适应自动缩放方法,其特征在于,周期内服务算力常数的监测平均值的公式如下:
Figure FDA0003503566300000021
Figure FDA0003503566300000022
为周期T内服务算力常数的监测平均值,Ci,T为周期T内的采样次数,
Figure FDA0003503566300000023
表示周期内微服务Si的平均请求数,HMi,t表示周期T内微服务Si在时刻t的实时服务算力,i表示微服务的编号;
周期内服务算力常数的监测平均值位于平稳区间时,满足:
Figure FDA0003503566300000024
自适应地对预期服务算力进行增加调整为:
Figure FDA0003503566300000025
周期内服务算力常数的监测平均值超过平稳区间时,满足:
Figure FDA0003503566300000026
自适应地对预期服务算力进行缩减调整为:
Figure FDA0003503566300000027
其中,hi为微服务Si的初始服务算力常数值,HPi为微服务Si的预期服务算力值。
5.根据权利要求1所述的多微服务调用环境下自适应自动缩放方法,其特征在于,步骤(4)中,决策微服务实例是否需要缩放的具体过程为:
若在一个时间窗口ΔT内,实时服务算力HM超过自适应的预期服务算力HP的比例超过设定阈值上限,则决策对该微服务实例进行拓容;若在一个时间窗口内,实时服务算力HM低于自适应的预期服务算力HP的比例低于设定阈值下限,则决策对该微服务实例进行缩容。
6.根据权利要求5所述的多微服务调用环境下自适应自动缩放方法,其特征在于,在一个时间窗口ΔT内,设定一个超期阈值α作为决策拓容的参考,另一个超期阈值β作为决策缩容的参考;
时间窗口ΔT设为5分钟,监控值计算的间隔为2秒,以Dt作为时间窗口ΔT内第t时间间隔下的决策统计量:
Figure FDA0003503566300000031
若当前窗口表示式
Figure FDA0003503566300000032
则进行拓容操作,
若当前窗口表示式
Figure FDA0003503566300000033
则进行缩容操作。
7.根据权利要求1所述的多微服务调用环境下自适应自动缩放方法,其特征在于,步骤(5)的具体过程为:
基于上游至下游流量数据,递归地将上游微服务缩放决策实例数带来的变化转换到的流量的变化上,反馈到下游服务中,实时地更新下游服务的计算流量值作为下游服务的流量,以调整下游服务的服务算力,再根据缩放决策方法,调整下游链路上微服务的实例数量。
8.一种多微服务调用环境下自适应自动缩放系统,其特征在于,包括服务算力常数初始模块、服务算力自适应计算模块、微服务缩放决策模块和链路缩放调整模块,其中,服务算力自适应计算模块、微服务缩放决策模块和链路缩放调整模块之间通过消息机制传递信息;
所述的服务算力常数初始模块用于根据微服务的压测时延情况,确定每个微服务初始的服务算力常数值h;
服务算力自适应计算模块用于通过对微服务状态的监测,自适应调整微服务的预期服务算力HP;
所述的微服务缩放决策模块用于根据实时服务算力HM和自适应调整的预期服务算力HP,决策微服务实例是否需要缩放;
所述的链路缩放调整模块用于调整微服务集群中下游服务的实例。
CN202210150833.0A 2022-02-14 2022-02-14 一种多微服务调用环境下自适应自动缩放方法及系统 Active CN114650297B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210150833.0A CN114650297B (zh) 2022-02-14 2022-02-14 一种多微服务调用环境下自适应自动缩放方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210150833.0A CN114650297B (zh) 2022-02-14 2022-02-14 一种多微服务调用环境下自适应自动缩放方法及系统

Publications (2)

Publication Number Publication Date
CN114650297A true CN114650297A (zh) 2022-06-21
CN114650297B CN114650297B (zh) 2023-03-10

Family

ID=81992795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210150833.0A Active CN114650297B (zh) 2022-02-14 2022-02-14 一种多微服务调用环境下自适应自动缩放方法及系统

Country Status (1)

Country Link
CN (1) CN114650297B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116893865A (zh) * 2023-09-11 2023-10-17 中移(苏州)软件技术有限公司 微服务实例调整方法、装置、电子设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2254310A2 (en) * 2009-05-22 2010-11-24 Comcast Interactive Media, LLC Web service system and method
CN111130908A (zh) * 2019-12-31 2020-05-08 中信百信银行股份有限公司 基于调用流量分析预测的微服务动态聚合拆分系统
EP3667498A1 (en) * 2018-12-13 2020-06-17 Sap Se Amplifying scaling elasticity of microservice meshes
CN112199150A (zh) * 2020-08-13 2021-01-08 北京航空航天大学 一种基于微服务调用依赖感知的在线应用动态扩缩容方法
CN112367268A (zh) * 2020-11-24 2021-02-12 苏宁云计算有限公司 用于微服务的限流方法及装置
CN112988398A (zh) * 2021-04-26 2021-06-18 北京邮电大学 一种微服务动态伸缩及迁移方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2254310A2 (en) * 2009-05-22 2010-11-24 Comcast Interactive Media, LLC Web service system and method
US20100299437A1 (en) * 2009-05-22 2010-11-25 Comcast Interactive Media, Llc Web Service System and Method
EP3667498A1 (en) * 2018-12-13 2020-06-17 Sap Se Amplifying scaling elasticity of microservice meshes
CN111130908A (zh) * 2019-12-31 2020-05-08 中信百信银行股份有限公司 基于调用流量分析预测的微服务动态聚合拆分系统
CN112199150A (zh) * 2020-08-13 2021-01-08 北京航空航天大学 一种基于微服务调用依赖感知的在线应用动态扩缩容方法
CN112367268A (zh) * 2020-11-24 2021-02-12 苏宁云计算有限公司 用于微服务的限流方法及装置
CN112988398A (zh) * 2021-04-26 2021-06-18 北京邮电大学 一种微服务动态伸缩及迁移方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116893865A (zh) * 2023-09-11 2023-10-17 中移(苏州)软件技术有限公司 微服务实例调整方法、装置、电子设备及可读存储介质
CN116893865B (zh) * 2023-09-11 2023-12-12 中移(苏州)软件技术有限公司 微服务实例调整方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN114650297B (zh) 2023-03-10

Similar Documents

Publication Publication Date Title
JP6457447B2 (ja) データセンターのネットワークトラフィックスケジューリング方法及び装置
CN111459617B (zh) 基于云平台的容器化应用自动分配优化系统及其方法
CN106933650B (zh) 云应用系统的负载管理方法及系统
He et al. QoE-driven content-centric caching with deep reinforcement learning in edge-enabled IoT
CN110716808B (zh) 业务处理方法、装置、计算机设备和存储介质
CN103491556A (zh) 一种网络调整的方法及装置
CN115208879A (zh) 将查询定向到跨主机系统和主机系统的硬件加速器分布的容器编排平台的集群的节点
KR20180047070A (ko) 동적인 에지 컴퓨팅을 수행하는 방법 및 장치
CN114650297B (zh) 一种多微服务调用环境下自适应自动缩放方法及系统
CN116302578B (zh) 一种QoS约束的流应用延迟确保方法及系统
CN114205316A (zh) 一种基于电力业务的网络切片资源分配方法及装置
CN117155942A (zh) 一种微服务动态自适应客户端负载均衡方法及系统
JP6660283B2 (ja) トラヒック需要予測装置、トラヒック需要予測方法、及びプログラム
CN116578408A (zh) 一种支撑智能制造软件的运行资源调度方法
CN114845400A (zh) 一种基于FlexE的资源分配方法及系统
CN111901435B (zh) 一种负载感知的云边协同服务部署方法
Bensalem et al. Scaling Serverless Functions in Edge Networks: A Reinforcement Learning Approach
CN116382892B (zh) 一种基于多云融合以及云服务的负载均衡方法及装置
CN111278039B (zh) 用户感知压抑识别方法、装置、设备及介质
CN114978913B (zh) 一种基于切链的服务功能链跨域部署方法及系统
CN113778682B (zh) 一种mec系统资源分配方法
CN114936089A (zh) 资源调度方法、系统、设备及存储介质
CN109685101B (zh) 一种多维数据自适应采集方法及系统
CN108243112B (zh) 聊天群组网络流量控制方法及装置、存储介质及计算设备
CN113934531A (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
GR01 Patent grant
GR01 Patent grant