CN113485830A - 一种电网监控***微服务自动扩容方法 - Google Patents
一种电网监控***微服务自动扩容方法 Download PDFInfo
- Publication number
- CN113485830A CN113485830A CN202110747709.8A CN202110747709A CN113485830A CN 113485830 A CN113485830 A CN 113485830A CN 202110747709 A CN202110747709 A CN 202110747709A CN 113485830 A CN113485830 A CN 113485830A
- Authority
- CN
- China
- Prior art keywords
- micro
- target
- service
- microservice
- capacity expansion
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000012544 monitoring process Methods 0.000 title abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 33
- 238000004590 computer program Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000010076 replication Effects 0.000 description 4
- 230000005611 electricity Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02J—CIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
- H02J13/00—Circuit arrangements for providing remote indication of network conditions, e.g. an instantaneous record of the open or closed condition of each circuitbreaker in the network; Circuit arrangements for providing remote control of switching means in a power distribution network, e.g. switching in and out of current consumers by using a pulse code signal carried by the network
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种电网监控***微服务自动扩容方法。该方法包括:获取目标应用中每个微服务在预设时间段内的访问流量和各微服务之间的业务关系;根据各微服务的访问流量和各微服务之间的业务关系,确定目标扩容微服务;获取目标扩容微服务的目标镜像实例数量,并根据目标镜像实例数量对运行目标扩容微服务的容器的镜像实例进行扩容处理。在本申请中,通过微服务的访问流量,以判断微服务对应的容器是否需要扩容。由于各微服务之间存在业务关系,一个微服务的运行会影响另一个微服务的调用,因此,根据访问流量和各微服务之间的业务关系,准确且全面地确定目标扩容微服务,对目标扩容微服务对应的容器进行扩容处理,提高了扩容效率。
Description
技术领域
本申请涉及扩容技术领域,特别是涉及一种电网监控***微服务自动扩容方法。
背景技术
微服务架构是采用单业务开发完整应用的***服务,它将一个复杂的应用拆分成多个服务,且每个服务专注于单一业务功能对外提供解决方案。微服务以容器形式部署在云管理平台上,每个微服务代表应用中一个小的业务能力。在应用运行过程中,由云管理平台中的控制中心控制对应业务的容器运行以提供该应用的解决方案。
然而,由于业务类型的不同,容易出现一个应用中的部分业务在某一时间段内设备接入量激增的情况,例如,在年末的用电量结算时段,订单业务的设备接入量会呈现较大波动,此时,可能会出现应用响应时间长、甚至宕机的情况。
发明内容
基于此,有必要针对上述技术问题,提供一种能够根据微服务的访问量对运行该微服务的容器进行自动扩容的电网监控***微服务自动扩容方法。
第一方面,提供了一种微服务扩容方法,该方法包括:
获取目标应用中每个微服务在预设时间段内的访问流量和各微服务之间的业务关系;
根据各微服务的访问流量和各微服务之间的业务关系,确定目标扩容微服务;
获取目标扩容微服务的目标镜像实例数量,并根据目标镜像实例数量对运行目标扩容微服务的容器的镜像实例进行扩容处理。
在其中一个实施例中,目标扩容微服务包括目标微服务和相关微服务,相关微服务表示与目标微服务之间存在依赖关系的微服务;
则根据各微服务的访问流量和各微服务之间的业务关系,确定目标扩容微服务,包括:
根据各微服务的访问流量,确定目标微服务;
根据各微服务之间的业务关系,确定相关微服务。
在其中一个实施例中,根据各微服务的访问流量,确定目标微服务,包括:
根据各微服务的访问流量,确定各微服务对应的需求镜像实例数量,需求镜像实例数量和访问流量成正比;
对于任一微服务,若微服务对应的需求镜像实例数量大于微服务的初始镜像实例数量,且需求镜像实例数量和初始镜像实例数量的差值大于预设阈值,则确定微服务为目标微服务。
在其中一个实施例中,目标扩容微服务包括目标微服务和相关微服务;
获取目标扩容微服务的目标镜像实例数量,包括:
获取目标微服务的第一目标镜像实例数量和相关微服务的第二目标镜像实例数量。
在其中一个实施例中,获取目标微服务的第一目标镜像实例数量,包括:
获取目标微服务对应的需求镜像实例数量,并将目标微服务对应的需求镜像实例数量确定为第一目标镜像实例数量。
在其中一个实施例中,获取相关微服务的第二目标镜像实例数量,包括:
根据各微服务之间的业务关系,确定相关微服务和目标微服务之间的关联权重;
根据第一目标镜像实例数量和关联权重,确定相关微服务的第二目标镜像实例数量。
在其中一个实施例中,根据目标镜像实例数量对运行目标扩容微服务的容器的镜像实例进行扩容处理,包括:
将目标微服务对应容器的初始镜像实例数量增加至与第一目标镜像实例数量相等;
将相关微服务对应容器的初始镜像实例数量增加至与第二目标镜像实例数量相等。
第二方面,提供了一种微服务扩容装置,该装置包括:
获取模块,用于获取目标应用中每个微服务在预设时间段内的访问流量和各微服务之间的业务关系;
确定模块,用于根据各微服务的访问流量和各微服务之间的业务关系,确定目标扩容微服务;
扩容模块,用于获取目标扩容微服务的目标镜像实例数量,并根据目标镜像实例数量对运行目标扩容微服务的容器的镜像实例进行扩容处理。
第三方面,提供了一种一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现第一方面中任一项微服务扩容方法的步骤。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现第一方面中任一项微服务扩容方法的步骤。
上述电网监控***微服务自动扩容方法,获取目标应用中每个微服务在预设时间段内的访问流量和各微服务之间的业务关系;根据各微服务的访问流量和各微服务之间的业务关系,确定目标扩容微服务;获取目标扩容微服务的目标镜像实例数量,并根据目标镜像实例数量对运行目标扩容微服务的容器的镜像实例进行扩容处理。在目标应用运行过程中,当微服务的访问流量过大时,承载该微服务的容器资源不足以保证该微服务的流畅运行。因此,可以通过微服务在预设时间段内的访问流量,判断微服务对应的容器是否需要扩容处理。此外,由于组成目标应用的多个微服务之间存在业务关系,一个微服务的运行会影响另一个微服务的调用,根据访问流量和各微服务之间的业务关系,可以准确且全面地确定需要扩容处理的微服务,即目标扩容微服务。如此,对目标扩容微服务对应的容器进行扩容处理,即可满足访问流量需求,提高了扩容效率。
附图说明
图1为本申请一个实施例提供的微服务扩容方法的应用环境图;
图2为本申请一个实施例提供的微服务扩容方法的流程示意图;
图3为本申请一个实施例提供的微服务扩容方法中步骤220的流程示意图;
图4为本申请一个实施例提供的微服务扩容方法中步骤230的流程示意图;
图5为本申请另一个实施例提供的微服务扩容方法的流程示意图;
图6为一个实施例中微服务扩容装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在对本申请的微服务扩容方法进行解释说明之前,先对本申请涉及的名词、应用环境进行解释说明。
Kubernetes***:容器服务编排程序(Kubernetes,K8s)提供应用部署、维护和扩展机制等功能,利用K8s***能方便地管理跨机器运行容器化的应用,K8s***可以在物理机上运行。
K8s***按节点功能由控制节点和运行节点组成。
其中,控制节点负责调度和管理整个***,控制节点包含API Server(服务接口)组件、Scheduler(调度程序)组件和Controller Manager(控制中心)组件。
API Server作为K8s***的入口,封装了核心对象的增删改查操作,以RESTful(Representational state transfer,表述性状态转移)接口方式提供给外部客户和内部组件调用,它维护的REST对象将持久化到etcd(键值存储***,主要用于共享配置和服务发现)。Scheduler负责集群的资源调度,为新建的pod分配机器,这部分工作分出来变成一个组件,意味着可以很方便地替换成其他的调度器。Controller Manager为K8s***中各种controller的管理者,是集群内部的控制中心,负责执行各种控制器。通常有两类控制器:端点控制器和副本控制器。端点控制器(Endpoint Controller)定期关联service和pod(关联信息由endpoint对象维护),保证service到pod的映射总是最新的;副本控制器(Replication Controller)定期关联replication Controller和pod,保证replicationController定义的复制数量与实际运行pod的数量总是一致的。
运行节点可以是一台物理主机,也可以是一台虚拟机(VM),负责运行业务容器。在每个运行节点上运行用于启动和管理pod的服务——kubelet,并能够被控制节点管理。在运行节点上运行的服务进程包括kubelet、kube-proxy和docker daemon。
Kubelet责管控docker容器,如启动/停止和监控运行状态等,它会定期从etcd获取分配到本机的pod,并根据pod信息启动或停止相应的容器。同时,它也会接收API Server的HTTP请求,汇报pod的运行状态。Kube Proxy负责为pod提供代理,它会定期从etcd获取所有的service,并根据service信息创建代理,当某个客户pod要访问其他pod时,访问请求会经过本机proxy做转发。docker deamon监听着客户端的请求,并且管理着docker的镜像、容器、网络、磁盘等对象。其中,docker镜像是一个只读模板,可以用来创建docker容器。镜像是一种轻量级的、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件。它包含运行某个软件所需要的所有的内容,包括代码、运行时、库、环境变量、配置文件等。
微服务:一种软件开发技术面向服务的体系结构(SOA)架构样式的一种变体,将应用程序构造为一组松散耦合的服务。在微服务体系结构中,服务是细粒度的,协议是轻量级的。微服务架构是将一个复杂的应用拆分成多个服务模块,且每个模块专注于单一业务功能对外提供服务。由于服务模块可以独立编译部署,同时各服务模块之间可以互相通信,并组合为整体对外提供服务,使得微服务架构具有部署灵活、更新和维护方便等优点,被广泛应用于当前互联网的大量应用和服务中。
本申请提供的微服务扩容方法,可以应用于如图1所示的应用环境中。其中,控制节点110通过网络与多个运行节点120进行通信。运行节点120可以为虚拟机或者物理服务器,控制节点110可以为终端设备。
每个运行节点120上有一个分配的pod,pod可以被一个容器化的环境看作应用层的“逻辑宿主机”。pod可以包括多个容器,且pod中的多个容器对应的应用通常是紧耦合的。Pod在运行节点120上被创建、启动或者销毁。每个容器承载一个微服务,容器是通过镜像进行创建的。
控制节点110负责K8s***中资源配额管理,确保指定的对象在任何时候都不会超量占用***资源,避免了由于某些业务进程的设计或实现的缺陷导致整个***运行紊乱甚至意外宕机,对整个集群的平稳运行和稳定性有非常重要的作用。
复杂应用中的不同的业务对应不同的微服务,当一个应用中的部分业务在某一段时间内的访问量激增时,承载该微服务的容器可能会因为运行资源不够,而出现响应时间过长。当运行节点120上微服务的访问量激增时,还可能会导致运行节点120宕机。
基于此,在本申请实施例中,控制节点110可以根据各个运行节点120上部署的多个微服务中每个微服务的访问流量,对承载微服务的容器进行扩容处理。
在一个实施例中,如图2所示,提供了一种微服务扩容方法,以该方法应用于图1中的控制节点110为例进行说明,包括以下步骤:
步骤210:获取目标应用中每个微服务在预设时间段内的访问流量和各微服务之间的业务关系。
其中,目标应用可以是K8s***上容器化的任一应用,目标应用包括的业务被拆分为不同的微服务,部署在不同的容器中。
需要说明的是,每个微服务的访问流量通过每个业务的访问流量来反映。
作为一个示例,电力应用可以包括个人中心、电量订购和订单支付等业务,每个业务对应一个微服务。在年末的用电量结算时段,大量用户设备访问订单支付业务,导致订单支付业务的访问量激增,使得订单支付微服务的访问量激增。
此外,一个应用中各个业务之间存在关联,一个业务的运行会影响其他业务的调用。
比如,用户访问电量订购业务,订购生活所需的用电量后,会通过调用订单支付业务来支付相应的费用。也即是,当用户访问电量订购微服务后,访问订单支付微服务的可能性会更大一些,这两个微服务之间存在关联。
在一种可能的实现方式中,上述步骤210的实现过程可以为:控制节点110通过查看每个微服务对应的REST API在预设时间段内的设备接入量,将每个微服务在REST API的设备接入量确定为该微服务的访问流量。同时,获取目标应用中各业务之间的关系,业务之间的关系即为各微服务之间的业务关系。
其中,预设时间段可以是目标应用运行的任意时间段,在实施前可以预先设定时间段,比如:5分钟、10分钟、30分钟等,本申请实施例对此不做限制。
需要说明的是,控制节点110可以存储K8s***中所有节点的容器数据、各个容器中部署的微服务信息、各微服务之间的业务关系等信息,存储形式可以为数据表、拓扑结构等。上述信息也可以通过其他第三方收设备进行存储,在需要使用时,由控制节点110从其他设备中获取,本申请对存储地点和存储方式不做限制。
步骤220:根据各微服务的访问流量和各微服务之间的业务关系,确定目标扩容微服务。
其中,目标扩容微服务包括目标微服务和相关微服务。
在一种可能的实现方式中,根据各微服务的访问流量和各微服务之间的业务关系,将访问流量激增的微服务,以及与该微服务存在业务关系的其他微服务一并确定为目标扩容微服务。
步骤230:获取目标扩容微服务的目标镜像实例数量,并根据目标镜像实例数量对运行目标扩容微服务的容器的镜像实例进行扩容处理。
其中,镜像用于创建容器,镜像实例数量决定容器可用资源的大小。目标镜像实例数量为满足微服务访问流量需求的镜像实例数量。
需要说明的是,由于目标业务的完整执行可能会涉及其他业务的调用,目标扩容微服务包括目标微服务和相关微服务。因此,对目标微服务对应的容器执行扩容操作时,需要同步对相关微服务对应的容器执行扩容处理。
在一种可能的实现方式中,上述步骤230的实现过程可以为:获取目标微服务和相关微服务的目标镜像实例数量,将运行目标微服务的容器的镜像实例数量增加至与目标镜像实例数量相等,将运行相关微服务的容器的镜像实例数量增加至与目标镜像实例数量相等,以对目标微服务和相关微服务对应的容器进行同步扩容处理。
在本申请实施例中,获取目标应用中每个微服务在预设时间段内的访问流量和各微服务之间的业务关系;根据各微服务的访问流量和各微服务之间的业务关系,确定目标扩容微服务;获取目标扩容微服务的目标镜像实例数量,并根据目标镜像实例数量对运行目标扩容微服务的容器的镜像实例进行扩容处理。在目标应用运行过程中,当微服务的访问流量过大时,承载该微服务的容器的镜像实例不足以保证该微服务的流畅运行。因此,通过微服务在预设时间段内访问流量,即可判断微服务对应的容器是否需要扩容处理。由于组成目标应用的多个微服务之间存在业务关系,一个微服务的运行会影响另一个微服务的调用,因此,本申请根据访问流量和各微服务之间的业务关系,准确且全面地确定需要扩容处理的目标扩容微服务。如此,对目标扩容微服务进行扩容处理后,目标扩容微服务对应的容器可以正常运行微服务,以满足访问流量需求,提高了扩容效率。
此外,执行上述微服务扩容方法时,在获取目标应用中每个微服务在预设时间段内的访问流量(上述步骤210)之前,还可以包括以下步骤:
步骤202:获取目标应用程序的运行状态。
在一种应用场景中,目标应用程序的运行状态可以通过电网监控***中管理人员进行人为确定,当监控中心启动多个监测终端时,需要调用多个监测终端运行应用的应用程序,由此可以获知应用程序的运行状态。或者,当监测终端在启动自身执行的应用时,上报应用信息至监控中心,监控中心由此获取应用程序的运行状态。
其中,目标应用可以为电网监控***中任一可以执行的应用。目标应用程序的运行状态包括:运行状态和未运行状态。
步骤204:当目标应用程序处于运行状态时,开始执行上述步骤210,实施本申请提供的微服务扩容方法,以根据访问流量对运行微服务的容器进行扩容处理。
步骤206:当目标应用程序处于未运行状态时,停止执行本申请的微服务扩容方法。
可以理解的是,执行该电网监控***的微服务扩容方法需占用一定的中央处理器(Central Processing Unit,CPU)资源,且若该应用程序对应的计算机(运行节点)环境因操作***或其他原因运行失败时,则会占用当前***运行的CPU资源。因此,当目标应用程序处于未运行状态时,控制该电网监控***的微服务扩容方法停止执行,以减少对K8s***资源的占用,提高对应运行节点的运行流畅度。
在一个实施例中,如图3所示,目标扩容微服务包括目标微服务和相关微服务,则根据各微服务的访问流量和各微服务之间的业务关系确定目标扩容微服务(上述步骤220)的实现过程,包括以下步骤:
步骤310:根据各微服务的访问流量,确定目标微服务。
在一种可能的实现方式中,上述步骤310的实现过程可以为:根据各微服务的访问流量,确定各微服务对应的需求镜像实例数量。对于任一微服务,若微服务对应的需求镜像实例数量大于微服务的初始镜像实例数量,且需求镜像实例数量和初始镜像实例数量的差值大于预设阈值,则确定微服务为目标微服务。
其中,预设阈值可以为20、50、100等,本实施例并不对其做限制。
微服务的需求镜像实例数量和访问流量成正比,访问流量较大时,需要更多的容器资源运行该微服务,以满足访问需求。即当访问流量大时,需求镜像实例数量会多一点,当访问流量小时,需求镜像实例数量会少一点。
初始镜像实例数量为预先配置的微服务容器资源。在一种可能的实现方式中,获取初始镜像实例数量的过程为:根据业务和容器的对应关系,确定部署部署微服务的具体容器,然后根据该容器的容器数据,确定运行当前微服务的容器资源,即得到初始镜像实例数量。
步骤320:根据各微服务之间的业务关系,确定相关微服务。
在一种可能的方式中,业务关系可以通过关联权重或者关联度来表示,本申请对此不做限制。
作为一个示例,若目标应用包括业务A(对应微服务A)、业务B(对应微服务B)、业务C(对应微服务C)、业务D(对应微服务D)和业务E(对应微服务E),则各微服务之间的业务关系可以通过下表1来表示。
表1
应该理解的是,访问微服务A后再访问微服务E的可能性为0,并不代表访问微服务E后再访问微服务A的可能性也为0。
比如,选购商品后会进行付款,但付款后不一定继续选购商品。如上表1所示,访问微服务A后再访问微服务E的可能性为0,但访问微服务E后访问微服务A的可能性为80%。
在上表1中,先访问微服务为目标微服务,后调度微服务为与目标微服务存在业务关系的相关微服务。如此,基于上述表1,可以根据目标微服务,以及各个微服务之间的业务关系,确定相关微服务(与目标微服务的业务关系不为0的微服务)。
在本申请实施例中,根据获取的个微服务的访问流量,确定各微服务对应的需求镜像实例数量,进而根据各微服务的需求镜像实例数量和初始镜像实例数量,从多个微服务中确定需要进行扩容处理的目标微服务。由于容器是基于镜像实例创建的,因此,通过运行微服务需要的需求镜像实例数量和初始镜像实例数量,可以确定需要扩容的微服务,提高了扩容微服务的确定效率。此外,由于各微服务之间存在业务关系,在确定目标微服务后,可以根据各微服务之间的业务关系,进一步确定与目标微服务存在业务关系的相关微服务。如此,确定的目标扩容微服务包括目标微服务和相关微服务,扩容微服务确定更为全面。
在一个实施例中,如图4所示,获取目标扩容微服务的目标镜像实例数量,并根据目标镜像实例数量对运行目标扩容微服务的容器的镜像实例进行扩容处理(上述步骤230)的实现过程,包括以下步骤:
步骤410:获取目标微服务的第一目标镜像实例数量和相关微服务的第二目标镜像实例数量。
在一种可能的实现方式中,获取目标微服务的第一目标镜像实例数量的实现过程可以为:根据目标微服务的访问流量,获取目标微服务对应的需求镜像实例数量,将目标微服务对应的需求镜像实例数量确定为第一目标镜像实例数量。
进一步地,获取相关微服务的第二目标镜像实例数量的实现过程可以为:根据各微服务之间的业务关系,确定相关微服务和目标微服务之间的关联权重,根据第一目标镜像实例数量和关联权重,确定相关微服务的第二目标镜像实例数量。
可以理解的是,由于每个业务之间可以相互调用,即业务之间存在业务关系,但描述每个业务关系的关联权重可能不相同。例如,订单业务、登录业务、收藏业务,订单业务与登录业务之间的关联权重,高于订单业务与收藏业务之间的关联权重。因此,每一个相关微服务与目标微服务之间的关联权重可能不同,对应的镜像实例数量也不同,即对应容器扩容后同一时段内的用户可接入量不同。
参见上述表1,作为一个示例,若目标微服务为微服务A,相关微服务包括微服务B、微服务C和微服务D。相关微服务与目标微服务的关联权重分别是:30%、30%、40%。
针对上述目标微服务A,若第一目标镜像实例数量为100,则确定相关微服务的第二目标镜像实例数量分别为:微服务B的第二目标镜像实例数量30,微服务C的第二目标镜像实例数量30,微服务D的第二目标镜像实例数量40。
步骤420:将目标微服务对应容器的初始镜像实例数量增加至与第一目标镜像实例数量相等,将相关微服务对应容器的初始镜像实例数量增加至与第二目标镜像实例数量相等。
其中,初始镜像实例数量可以基于K8s***中查询或者获取得到,在此不做解释。
在一种可能的实现方式中,上述步骤420的实现过程可以为:在目标微服务的初始镜像实例数量的基础上,通过增加目标微服务对应容器的镜像实例数量,使得目标微服务对应容器的镜像实例数量达到第一目标镜像数量。在相关微服务的初始镜像实例数量的基础上,通过增加相关微服务对应容器的镜像实例数量,使得相关微服务对应容器的镜像实例数量达到第二目标镜像数量。
示例性的,在K8s***上添加扩容触发器,并将该扩容触发器的目标服务项选择为目标微服务,根据第一目标镜像实例数量设置步长项的数量,然后,将该扩容触发器的触发地址利用POST请求进行Send服务,以使目标微服务对应容器得到满足第一目标镜像实例数量的若干个新的镜像实例,从而达到扩容效果。同理,添加一个目标服务项为相关微服务的扩容触发器,并根据第二镜像实例数量设置步长项的数量,之后执行上述操作,以使相关微服务对应容器得到满足第二目标镜像实例数量的若干个新的镜像实例,达到扩容效果。
扩容处理后,目标微服务对应容器的镜像实例数量为第一目标镜像实例数量,可以满足目标微服务激增的访问流量需求。相关微服务对应容器的镜像实例数量为第二目标镜像实例数量,在访问目标微服务后,调用相关微服务时,可以满足相关微服务的访问流量需求。
在本申请实施例中,对目标扩容微服务的扩容处理通过增加目标扩容微服务的镜像实例数量来实现。具体地,根据访问流量,确定目标微服务的第一目标镜像实例数量,根据相关微服务和目标微服务之间的关联权重,以及第一目标镜像实例数量,确定相关微服务的第二目标镜像实例数量。将目标微服务对应容器的镜像实例数量增加至第一目标镜像实例数量,将相关微服务的镜像实例数量增加至第二目标镜像实例数量。如此,在对目标微服务对应容器进行扩容的同时,也对相关微服务对应的容器进行提前扩容,提高了***的扩容效率。
基于上述实施例,如图5所示,本申请还提供了另一种微服务扩容方法,以该方法应用于图1中的控制节点110为例进行说明,包括以下步骤:
步骤510:获取目标应用中每个微服务在预设时间段内的访问流量和各微服务之间的业务关系;
步骤520:根据各微服务的访问流量,确定目标微服务;
步骤530:根据各微服务之间的业务关系,确定相关微服务;
步骤540:获取目标微服务对应的需求镜像实例数量,并将目标微服务对应的需求镜像实例数量确定为第一目标镜像实例数量;
步骤550:根据各微服务之间的业务关系,确定相关微服务和目标微服务之间的关联权重;
步骤560:根据第一目标镜像实例数量和关联权重,确定相关微服务的第二目标镜像实例数量;
步骤570:将目标微服务对应容器的初始镜像实例数量增加至与第一目标镜像实例数量相等,将相关微服务对应容器的初始镜像实例数量增加至与第二目标镜像实例数量相等。
上述步骤的具体实现过程可参见图2-4对应的实施例,在此不再赘述,通过上述微服务扩容方法,可以在目标应用运行过程中,通过微服务在预设时间段内的访问流量,判断微服务对应的容器是否需要扩容处理。进一步地,根据访问流量和各微服务之间的业务关系,准确且全面地确定需要扩容处理的微服务,即目标扩容微服务。如此,对目标扩容微服务对应的容器进行扩容处理,即可满足访问流量需求,提高了扩容效率。
应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种微服务扩容装置,该装置600包括:获取模块610、确定模块620和扩容模块630,其中:
获取模块610,用于获取目标应用中每个微服务在预设时间段内的访问流量和各微服务之间的业务关系;
确定模块620,用于根据各微服务的访问流量和各微服务之间的业务关系,确定目标扩容微服务;
扩容模块630,用于获取目标扩容微服务的目标镜像实例数量,并根据目标镜像实例数量对运行目标扩容微服务的容器的镜像实例进行扩容处理。
在其中一个实施例中,目标扩容微服务包括目标微服务和相关微服务,相关微服务表示与目标微服务之间存在依赖关系的微服务;
则确定模块620,包括:
第一确定单元,用于根据各微服务的访问流量,确定目标微服务;
第二确定单元,用于根据各微服务之间的业务关系,确定相关微服务。
在其中一个实施例中,第一确定单元,还用于:
根据各微服务的访问流量,确定各微服务对应的需求镜像实例数量,需求镜像实例数量和访问流量成正比;
对于任一微服务,若微服务对应的需求镜像实例数量大于微服务的初始镜像实例数量,且需求镜像实例数量和初始镜像实例数量的差值大于预设阈值,则确定微服务为目标微服务。
在其中一个实施例中,目标扩容微服务包括目标微服务和相关微服务;
扩容模块630,还用于:
获取目标微服务的第一目标镜像实例数量和相关微服务的第二目标镜像实例数量。
在其中一个实施例中,扩容模块630,还用于:
获取目标微服务对应的需求镜像实例数量,并将目标微服务对应的需求镜像实例数量确定为第一目标镜像实例数量。
在其中一个实施例中,扩容模块630,还用于:
根据各微服务之间的业务关系,确定相关微服务和目标微服务之间的关联权重;
根据第一目标镜像实例数量和关联权重,确定相关微服务的第二目标镜像实例数量。
在其中一个实施例中,扩容模块630,还用于:
将目标微服务对应容器的初始镜像实例数量增加至与第一目标镜像实例数量相等;
将相关微服务对应容器的初始镜像实例数量增加至与第二目标镜像实例数量相等。
在本申请实施例中,控制节点通过获取目标应用中每个微服务在预设时间段内的访问流量和各微服务之间的业务关系;根据各微服务的访问流量和各微服务之间的业务关系,确定目标扩容微服务;获取目标扩容微服务的目标镜像实例数量,并根据目标镜像实例数量对运行目标扩容微服务的容器的镜像实例进行扩容处理。在本申请实施例中,当目标应用运行过程中任一微服务的访问流量过大时,承载该微服务的容器资源不足以保证该微服务的流畅运行。因此,可以通过微服务在预设时间段内的访问流量,判断微服务对应的容器是否需要扩容处理。此外,由于组成目标应用的多个微服务之间存在业务关系,一个微服务的运行会影响另一个微服务的调用,根据访问流量和各微服务之间的业务关系,可以准确且全面地确定需要扩容处理的微服务,即目标扩容微服务。如此,对目标扩容微服务对应的容器进行扩容处理,即可满足访问流量需求,提高了扩容效率。
关于微服务扩容装置600的具体限定可以参见上文中对于微服务扩容方法的限定,在此不再赘述。上述微服务扩容装置600中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过***总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种微服务扩容方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现本申请任一实施例中的微服务扩容方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现本申请任一实施例中的微服务扩容方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种微服务扩容方法,其特征在于,所述方法包括:
获取目标应用中每个微服务在预设时间段内的访问流量和各所述微服务之间的业务关系;
根据各所述微服务的访问流量和各所述微服务之间的业务关系,确定目标扩容微服务;
获取所述目标扩容微服务的目标镜像实例数量,并根据所述目标镜像实例数量对运行所述目标扩容微服务的容器的镜像实例进行扩容处理。
2.根据权利要求1所述的微服务扩容方法,其特征在于,所述目标扩容微服务包括目标微服务和相关微服务,所述相关微服务表示与所述目标微服务之间存在依赖关系的微服务;
则所述根据各所述微服务的访问流量和各所述微服务之间的业务关系,确定目标扩容微服务,包括:
根据各所述微服务的访问流量,确定所述目标微服务;
根据各所述微服务之间的业务关系,确定所述相关微服务。
3.根据权利要求2所述的微服务扩容方法,其特征在于,所述根据各所述微服务的访问流量,确定所述目标微服务,包括:
根据各所述微服务的访问流量,确定各所述微服务对应的需求镜像实例数量,所述需求镜像实例数量和所述访问流量成正比;
对于任一微服务,若所述微服务对应的需求镜像实例数量大于所述微服务的初始镜像实例数量,且所述需求镜像实例数量和所述初始镜像实例数量的差值大于预设阈值,则确定所述微服务为所述目标微服务。
4.根据权利要求1-3任一项所述的微服务扩容方法,其特征在于,所述目标扩容微服务包括目标微服务和相关微服务;
所述获取所述目标扩容微服务的目标镜像实例数量,包括:
获取所述目标微服务的第一目标镜像实例数量和所述相关微服务的第二目标镜像实例数量。
5.根据权利要求4所述的微服务扩容方法,其特征在于,所述获取所述目标微服务的第一目标镜像实例数量,包括:
获取所述目标微服务对应的需求镜像实例数量,并将所述目标微服务对应的需求镜像实例数量确定为所述第一目标镜像实例数量。
6.根据权利要求4所述的微服务扩容方法,其特征在于,所述获取所述相关微服务的第二目标镜像实例数量,包括:
根据各所述微服务之间的业务关系,确定所述相关微服务和所述目标微服务之间的关联权重;
根据所述第一目标镜像实例数量和所述关联权重,确定所述相关微服务的第二目标镜像实例数量。
7.根据权利要求4所述的微服务扩容方法,其特征在于,所述根据所述目标镜像实例数量对运行所述目标扩容微服务的容器的镜像实例进行扩容处理,包括:
将所述目标微服务对应容器的初始镜像实例数量增加至与所述第一目标镜像实例数量相等;
将所述相关微服务对应容器的初始镜像实例数量增加至与所述第二目标镜像实例数量相等。
8.一种微服务扩容装置,其特征在于,所述装置包括:
获取模块,用于获取目标应用中每个微服务在预设时间段内的访问流量和各所述微服务之间的业务关系;
确定模块,用于根据各所述微服务的访问流量和各所述微服务之间的业务关系,确定目标扩容微服务;
扩容模块,用于获取所述目标扩容微服务的目标镜像实例数量,并根据所述目标镜像实例数量对运行所述目标扩容微服务的容器的镜像实例进行扩容处理。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的微服务扩容方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的微服务扩容方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110747709.8A CN113485830A (zh) | 2021-07-01 | 2021-07-01 | 一种电网监控***微服务自动扩容方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110747709.8A CN113485830A (zh) | 2021-07-01 | 2021-07-01 | 一种电网监控***微服务自动扩容方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113485830A true CN113485830A (zh) | 2021-10-08 |
Family
ID=77939341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110747709.8A Pending CN113485830A (zh) | 2021-07-01 | 2021-07-01 | 一种电网监控***微服务自动扩容方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113485830A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114401263A (zh) * | 2022-01-21 | 2022-04-26 | 中兴飞流信息科技有限公司 | 基于微服务实现的图片etl接入弹性处理分析方法及*** |
CN115022173A (zh) * | 2022-05-10 | 2022-09-06 | 度小满科技(北京)有限公司 | 一种服务扩容的方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108052374A (zh) * | 2017-12-29 | 2018-05-18 | 郑州云海信息技术有限公司 | 一种部署容器微服务的方法及装置 |
WO2018121210A1 (zh) * | 2016-12-28 | 2018-07-05 | 中兴通讯股份有限公司 | 一种PaaS平台容器化应用的弹缩方法及装置 |
US20180254996A1 (en) * | 2017-03-03 | 2018-09-06 | International Business Machines Corporation | Automatic scaling of microservices based on projected demand |
CN111309442A (zh) * | 2020-02-19 | 2020-06-19 | 望海康信(北京)科技股份公司 | 微服务容器数量的调整方法、装置、***、介质及设备 |
CN112199150A (zh) * | 2020-08-13 | 2021-01-08 | 北京航空航天大学 | 一种基于微服务调用依赖感知的在线应用动态扩缩容方法 |
US20210019194A1 (en) * | 2019-07-16 | 2021-01-21 | Cisco Technology, Inc. | Multi-cloud service mesh orchestration platform |
CN112291104A (zh) * | 2020-12-30 | 2021-01-29 | 望海康信(北京)科技股份公司 | 微服务自动伸缩***、方法及相应设备和存储介质 |
CN112448848A (zh) * | 2020-11-13 | 2021-03-05 | 上海电器科学研究所(集团)有限公司 | 一种基于微服务自动扩容方法 |
CN112988398A (zh) * | 2021-04-26 | 2021-06-18 | 北京邮电大学 | 一种微服务动态伸缩及迁移方法和装置 |
-
2021
- 2021-07-01 CN CN202110747709.8A patent/CN113485830A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018121210A1 (zh) * | 2016-12-28 | 2018-07-05 | 中兴通讯股份有限公司 | 一种PaaS平台容器化应用的弹缩方法及装置 |
US20180254996A1 (en) * | 2017-03-03 | 2018-09-06 | International Business Machines Corporation | Automatic scaling of microservices based on projected demand |
CN108052374A (zh) * | 2017-12-29 | 2018-05-18 | 郑州云海信息技术有限公司 | 一种部署容器微服务的方法及装置 |
US20210019194A1 (en) * | 2019-07-16 | 2021-01-21 | Cisco Technology, Inc. | Multi-cloud service mesh orchestration platform |
CN111309442A (zh) * | 2020-02-19 | 2020-06-19 | 望海康信(北京)科技股份公司 | 微服务容器数量的调整方法、装置、***、介质及设备 |
CN112199150A (zh) * | 2020-08-13 | 2021-01-08 | 北京航空航天大学 | 一种基于微服务调用依赖感知的在线应用动态扩缩容方法 |
CN112448848A (zh) * | 2020-11-13 | 2021-03-05 | 上海电器科学研究所(集团)有限公司 | 一种基于微服务自动扩容方法 |
CN112291104A (zh) * | 2020-12-30 | 2021-01-29 | 望海康信(北京)科技股份公司 | 微服务自动伸缩***、方法及相应设备和存储介质 |
CN112988398A (zh) * | 2021-04-26 | 2021-06-18 | 北京邮电大学 | 一种微服务动态伸缩及迁移方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114401263A (zh) * | 2022-01-21 | 2022-04-26 | 中兴飞流信息科技有限公司 | 基于微服务实现的图片etl接入弹性处理分析方法及*** |
CN115022173A (zh) * | 2022-05-10 | 2022-09-06 | 度小满科技(北京)有限公司 | 一种服务扩容的方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111966305B (zh) | 持久卷分配方法、装置、计算机设备和存储介质 | |
US8104038B1 (en) | Matching descriptions of resources with workload requirements | |
Mansouri | Adaptive data replication strategy in cloud computing for performance improvement | |
CA2637749C (en) | Method, system, and program product for deploying a platform dependent application in a grid environment | |
CN109189334B (zh) | 一种区块链网络服务平台及其扩容方法、存储介质 | |
CN112104723B (zh) | 一种多集群的数据处理***及方法 | |
CN113296792B (zh) | 存储方法、装置、设备、存储介质和*** | |
JP5352890B2 (ja) | 計算機システムの運用管理方法、計算機システム及びプログラムを記憶する計算機読み取り可能な媒体 | |
US11467874B2 (en) | System and method for resource management | |
CN111984269A (zh) | 提供应用构建服务的方法及应用构建平台 | |
CN111984270A (zh) | 应用部署方法和*** | |
CN109614167A (zh) | 一种管理插件的方法和*** | |
CN113485830A (zh) | 一种电网监控***微服务自动扩容方法 | |
US20220329651A1 (en) | Apparatus for container orchestration in geographically distributed multi-cloud environment and method using the same | |
CN108073423A (zh) | 一种加速器加载方法、***和加速器加载装置 | |
US20230063541A1 (en) | Determining computer resource usage at multiple levels of a container orchestration system hierarchy | |
CN113382077A (zh) | 微服务调度方法、装置、计算机设备和存储介质 | |
CN112306640A (zh) | 容器分配方法及其装置、设备、介质 | |
CN112631680A (zh) | 微服务容器调度***、方法、装置和计算机设备 | |
CN114579250A (zh) | 一种构建虚拟集群的方法、装置及存储介质 | |
CN115361389B (zh) | 一种云计算实例创建方法及装置 | |
WO2023056793A1 (en) | Optimizing a just-in-time compilation process | |
CN114924888A (zh) | 资源配置方法、数据处理方法、装置、设备和存储介质 | |
US20220382601A1 (en) | Configuration map based sharding for containers in a machine learning serving infrastructure | |
US20210067599A1 (en) | Cloud resource marketplace |
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 |