CN111459681B - 一种基于微服务负载的动态弹性伸缩方法 - Google Patents

一种基于微服务负载的动态弹性伸缩方法 Download PDF

Info

Publication number
CN111459681B
CN111459681B CN202010265014.1A CN202010265014A CN111459681B CN 111459681 B CN111459681 B CN 111459681B CN 202010265014 A CN202010265014 A CN 202010265014A CN 111459681 B CN111459681 B CN 111459681B
Authority
CN
China
Prior art keywords
index
micro
expansion
service
elastic
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.)
Active
Application number
CN202010265014.1A
Other languages
English (en)
Other versions
CN111459681A (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.)
Shanghai Sailing Information Technology Co ltd
Original Assignee
Shanghai Sailing Information Technology Co ltd
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 Shanghai Sailing Information Technology Co ltd filed Critical Shanghai Sailing Information Technology Co ltd
Priority to CN202010265014.1A priority Critical patent/CN111459681B/zh
Publication of CN111459681A publication Critical patent/CN111459681A/zh
Application granted granted Critical
Publication of CN111459681B publication Critical patent/CN111459681B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于微服务负载的动态弹性伸缩方法,涉及微服务领域,根据预先配置的伸缩策略、监控CPU、内存、时间指标、自动触发伸缩行为,根据平台弹性资源情况,动态的启/停微服务实例。本发明弹性伸缩规则更加具体,结合实际业务配置具体的触发规则,支持自动触发,支持水平、垂直伸缩,达到自动弹性伸缩的目的。

Description

一种基于微服务负载的动态弹性伸缩方法
技术领域
本发明涉及微服务领域,尤其涉及一种基于微服务负载的动态弹性伸缩方法。
背景技术
近些年来,IT***发展很快,随着需求增加、各项新的软件技术产生等使得软件部署环境的运维管理越来越复杂,能够提供基于业务负载的动态弹性伸缩能力成为了迫切的需求。
由于微服务架构和容器技术的兴起,大部分业务应用都采用微服务架构并且使用容器技术,所以最小的伸缩力度是容器(应用的实例)。
将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。负载的弹性伸缩,在应用级别伸缩层面一般可以指定应用的实例以及每个实例使用的资源进行伸缩调整,提供垂直、水平伸缩的方式。
但现有的微服务架构,当需要进行伸缩时,存在以下缺点:
1、现有的云平台,主要是在IaaS层的资源池的伸缩,整体管理整个平台的节点资源,在应用级别的伸缩业务化定制能力不足。
2、弹性扩缩容一般采取手动触发的方式,一般通过申请授权完成。
因此,本领域的技术人员致力于开发一种基于微服务负载的动态弹性伸缩方法,应用根据负载情况,实现应用实例动态弹性的容器管理。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是应用业务化扩缩容策略定制和弹性扩缩容自动触发。为实现上述目的,本发明提供了一种基于微服务负载的动态弹性伸缩方法,其特征在于,包括以下步骤:
步骤1、配置并更新弹性资源;
步骤2、配置伸缩策略;
步骤3、汇总微服务实例监控指标;
步骤4、判断微服务实例监控指标是否满足伸缩策略,如不满足则返回步骤3,如满足则进入步骤5;
步骤5、计算扩缩容资源情况;
步骤6、判断资源是否足够扩缩容,如不满足则告警,如满足则进入步骤7;
步骤7、调用容器管理软件,启/停容器;
步骤8、更新注册中心实例信息,更新弹性资源。
进一步地,弹性资源包括微服务实例资源和宿主机资源。
进一步地,微服务实例监控指标包括CPU指标、内存指标、时间指标。
进一步地,CPU指标采用周期和阈值的方式。
进一步地,内存指标采用周期和阈值的方式。
进一步地,时间指标包括定时、周期、扩缩容方向。
进一步地,伸缩策略包括开关、步长、最大实例数、最小实例数、间隔触发时间、主机规则、触发指标。
进一步地,步长为单次伸缩操作可增减的实例数。
进一步地,主机规则包括指定主机、排除主机、轮询、最小负载。
进一步地,触发指标包括CPU指标、内存指标、时间指标。
本发明的弹性伸缩规则更加具体,结合实际业务配置具体的触发规则,支持自动触发,支持水平、垂直伸缩。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是本发明的扩缩容自动触发的流程图。
具体实施方式
以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
如图1所示,一个微服务架构下的***,包含各种弹性资源,如宿主机资源和微服务实例。根据实际业务的不同,需要增加或减少弹性资源,并完成实例配置,保证业务平稳健康运行。在满足业务需求高峰增长时无缝地增加弹性资源,并在业务需求下降时自动减少弹性资源以节约成本。
为此,本实施例按照如下步骤进行动态弹性伸缩:
步骤1、配置并更新弹性资源,弹性资源包括宿主机资源和微服务资源。预先维护好宿主机资源情况和微服务实例资源情况(满足正常业务负载情况下的资源要求)。
宿主机资维护如下参数:
微服务资源维护如下参数:
步骤2、配置伸缩策略;
伸缩策略需要考虑:在什么时候(定时、周期)、按照什么方式(监控项、判断标准)、进行怎样的伸缩行为(定位目标资源、伸缩的流程控制)。
弹性伸缩的具体参数如下:
其中,启动开关定义伸缩策略是否启动;
对于CPU和内存采用周期和阈值结合的方式,比如:
1)在五分钟周期内CPU平均占用值小于30%的最小阈值则进行缩容;
2)在五分钟周期内内存最大占用值大于90%的最大阈值则进行扩容;
对于时间,需要指定周期内监控指标和周期临界点的扩缩容方向,如定时扩缩容或者周期性扩缩容。
步骤3、汇总微服务实例监控指标;包括微服务实例运行过程中的各种指标如CPU、内存的占用情况。
步骤4、判断微服务实例监控指标是否满足步骤2中定义的伸缩策略,如不满足则返回步骤3继续监控,如满足则进入步骤5。
步骤5、计算扩缩容资源情况。
步骤6、判断资源是否足够扩缩容,如不满足则告警,如满足则进入步骤7;
步骤7、根据调用容器管理软件,启/停容器;根据平台弹性资源情况和主机规则,动态的启/停微服务实例(容器)。
步骤8、更新注册中心实例信息,更新弹性资源。
在弹性伸缩策略触发扩缩容规则后,将相关实例信息注册到注册中心。定期检查注册中心实例信息,更新宿主机资源情况(空闲资源情况和微服务实例资源情况),调整负载组件的负载均衡路由规则,将必要的服务请求转发规则进行调整。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

Claims (1)

1.一种基于微服务负载的动态弹性伸缩方法,其特征在于,所述方法包括以下步骤:
步骤1、配置并更新弹性资源;
步骤2、配置伸缩策略;
步骤3、汇总微服务实例监控指标;
步骤4、判断所述微服务实例监控指标是否满足所述伸缩策略,如不满足则返回步骤3,如满足则进入步骤5;
步骤5、计算扩缩容资源情况;
步骤6、判断资源是否足够扩缩容,如不满足则告警,如满足则进入步骤7;
步骤7、调用容器管理软件,启/停容器;
步骤8、更新注册中心实例信息,更新所述弹性资源;
所述弹性资源包括微服务实例资源和宿主机资源,所述微服务实例监控指标包括CPU指标、内存指标、时间指标,所述CPU指标采用周期和阈值的方式,所述内存指标采用周期和阈值的方式,所述时间指标包括定时、周期、扩缩容方向;
所述伸缩策略包括开关、步长、最大实例数、最小实例数、间隔触发时间、主机规则、触发指标,所述步长为单次伸缩操作可增减的实例数,所述主机规则包括指定主机、排除主机、轮询、最小负载,所述触发指标包括CPU指标、内存指标、时间指标;所述CPU指标为一定持续时间内CPU的最大阈值、最小阈值;所述内存指标为一定持续时间内内存最大阈值、最小阈值;所述时间指标为定时、周期及扩容缩容伸缩方向。
CN202010265014.1A 2020-04-07 2020-04-07 一种基于微服务负载的动态弹性伸缩方法 Active CN111459681B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010265014.1A CN111459681B (zh) 2020-04-07 2020-04-07 一种基于微服务负载的动态弹性伸缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010265014.1A CN111459681B (zh) 2020-04-07 2020-04-07 一种基于微服务负载的动态弹性伸缩方法

Publications (2)

Publication Number Publication Date
CN111459681A CN111459681A (zh) 2020-07-28
CN111459681B true CN111459681B (zh) 2023-08-08

Family

ID=71685903

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010265014.1A Active CN111459681B (zh) 2020-04-07 2020-04-07 一种基于微服务负载的动态弹性伸缩方法

Country Status (1)

Country Link
CN (1) CN111459681B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112448848A (zh) * 2020-11-13 2021-03-05 上海电器科学研究所(集团)有限公司 一种基于微服务自动扩容方法
US11842214B2 (en) 2021-03-31 2023-12-12 International Business Machines Corporation Full-dimensional scheduling and scaling for microservice applications
CN114138473B (zh) * 2021-11-23 2024-06-25 西安深信智行科技有限公司 一种基于混合模式的弹性调度装置及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108712464A (zh) * 2018-04-13 2018-10-26 中国科学院信息工程研究所 一种面向集群微服务高可用的实现方法
CN109783073A (zh) * 2017-11-13 2019-05-21 中兴通讯股份有限公司 应用容器的弹缩方法及装置、微服务、存储介质
WO2020063206A1 (zh) * 2018-09-28 2020-04-02 南京中兴软件有限责任公司 微服务实例弹性伸缩方法、装置以及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109783073A (zh) * 2017-11-13 2019-05-21 中兴通讯股份有限公司 应用容器的弹缩方法及装置、微服务、存储介质
CN108712464A (zh) * 2018-04-13 2018-10-26 中国科学院信息工程研究所 一种面向集群微服务高可用的实现方法
WO2020063206A1 (zh) * 2018-09-28 2020-04-02 南京中兴软件有限责任公司 微服务实例弹性伸缩方法、装置以及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐琛杰 ; 周翔 ; 彭鑫 ; 赵文耘 ; .面向微服务***的运行时部署优化.计算机应用与软件.2018,(第10期),全文. *

Also Published As

Publication number Publication date
CN111459681A (zh) 2020-07-28

Similar Documents

Publication Publication Date Title
CN111459681B (zh) 一种基于微服务负载的动态弹性伸缩方法
WO2022257347A1 (zh) 一种容器云弹性伸缩的方法及集群服务器
US8656404B2 (en) Statistical packing of resource requirements in data centers
EP3335120B1 (en) Method and system for resource scheduling
CN104468407B (zh) 实现业务平台资源弹性分配的方法与装置
US20160378570A1 (en) Techniques for Offloading Computational Tasks between Nodes
CN110505155B (zh) 请求降级处理方法、装置、电子设备及存储介质
US20070078858A1 (en) Method and system for load balancing of computing resources
CN109739627B (zh) 任务的调度方法、电子设备及介质
US11119563B2 (en) Dynamic power capping of multi-server nodes in a chassis based on real-time resource utilization
CN102457906A (zh) 一种消息队列的负载均衡控制方法及***
CN109800261B (zh) 双数据库连接池的动态控制方法、装置及相关设备
EP3026869B1 (en) Method, device and system for carrying out telecommunication capability group sending
JP2023092413A (ja) クラスタに基づく容量縮小処理方法及び装置
CN110365743B (zh) 一种基于Zookeeper实现的支持多种可自定义负载算法的负载均衡器实现方法
CN110838987A (zh) 队列限流方法、存储介质
CN103747043A (zh) 一种cdn服务器调度方法、cdn控制中心及***
CN115361385B (zh) Docker Swarm环境中云原生应用自动弹性伸缩***和伸缩方法
CN113190343A (zh) 应用实例的控制方法、装置、设备及***
CN116244061A (zh) 一种基于k8s的Pod调度方法、存储介质及设备
CN107229519B (zh) 任务调度方法和装置
CN108279982B (zh) pbs资源与hadoop资源管理方法、***及设备
CN113434280A (zh) 基于时间动态调整调度间隔的方法
US20150043722A1 (en) Communication control device, communication control method, and communication control system
CN111190728A (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