CN116166424A - 一种应用***自动扩缩容方法、装置、设备以及存储介质 - Google Patents

一种应用***自动扩缩容方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN116166424A
CN116166424A CN202211668158.7A CN202211668158A CN116166424A CN 116166424 A CN116166424 A CN 116166424A CN 202211668158 A CN202211668158 A CN 202211668158A CN 116166424 A CN116166424 A CN 116166424A
Authority
CN
China
Prior art keywords
application
database
expansion
contraction
application system
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
CN202211668158.7A
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.)
Picc Information Technology Co ltd
Original Assignee
Picc 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 Picc Information Technology Co ltd filed Critical Picc Information Technology Co ltd
Priority to CN202211668158.7A priority Critical patent/CN116166424A/zh
Publication of CN116166424A publication Critical patent/CN116166424A/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了应用***自动扩缩容方法,用以解决现有应用***扩缩方案由于应用弹性扩缩容时并未考虑后端数据库的性能,而导致后端数据库因压力过大而出现宕机的问题。方法包括:根据获取到的应用***各应用运行数据,分别判断所述应用***中各应用是否需要进行自动扩缩容处理;当判断所述应用***中存在需要进行自动扩缩容处理的第一应用时,确定与所述第一应用关联的第一数据库,并获取所述第一数据库的当前运行参数;根据所述当前运行参数,确定所述第一应用对应的扩缩容参数;根据所述扩缩容参数,对所述应用***上的所述第一应用进行自动扩缩容。

Description

一种应用***自动扩缩容方法、装置、设备以及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用***自动扩缩容方法、装置、设备以及存储介质。
背景技术
随着互联网技术的飞速发展,各类终端设备数量不断增加,而随着使用用户的不断增加,各类依托于互联网的服务应用以及服务器也面临几何式增长的访问量需求。
当应用或者服务器在面对大规模高并发访问时,经常会出现服务或接口面对暴涨的请求而不可用的情况,甚至引发连锁反应导致整个应用***崩溃的问题。为了应对上述情况的发生,现有方案通常采用的方案是进行应用(节点)扩容,已云上部署的应用为例,当应用负载大的时候,通过对应用进行自动扩容,提升pod的副本数来应对短时增大的访问流量,而当应用负载小的时候,可以对应用进行自动缩容,以避免资源浪费。
然而,现有的应用弹性扩缩容方案主要通过监测应用(或者服务)的性能指标(比如,CPU利用率、每秒查询率(Queries-per-second,QPS)以及内存占用率等)来决定是否进行扩缩容的,应用弹性扩缩容时,并未考虑后端数据库的性能,但是,应用的扩容同时也会导致后端数据库的压力激增,严重情况下,可能会出现后端数据库因压力过大而导致宕机的问题。
由此可见,如何在同时保证应用与数据库的正常运行的情况下,还可以通过弹性扩容的方式来应对目前日益增长的应用访问需求,成为目前本领域相关技术人员亟待解决的问题。
发明内容
本申请实施例提供一种应用***自动扩缩容方法,用以解决现有应用***扩缩方案由于应用弹性扩缩容时并未考虑后端数据库的性能,而导致后端数据库因压力过大而出现宕机的问题。
本申请实施例还提供一种应用***自动扩缩容装置,用以解决现有应用***扩缩方案由于应用弹性扩缩容时并未考虑后端数据库的性能,而导致后端数据库因压力过大而出现宕机的问题。
本申请实施例还提供一种应用***自动扩缩容设备,用以解决现有应用***扩缩方案由于应用弹性扩缩容时并未考虑后端数据库的性能,而导致后端数据库因压力过大而出现宕机的问题。
本申请实施例还提供一种计算机可读存储介质,用以解决现有应用***扩缩方案由于应用弹性扩缩容时并未考虑后端数据库的性能,而导致后端数据库因压力过大而出现宕机的问题。
本申请实施例采用下述技术方案:
一种应用***自动扩缩容方法,包括:根据获取到的应用***各应用运行数据,分别判断所述应用***中各应用是否需要进行自动扩缩容处理;当判断所述应用***中存在需要进行自动扩缩容处理的第一应用时,确定与所述第一应用关联的第一数据库,并获取所述第一数据库的当前运行参数;根据所述当前运行参数,确定所述第一应用对应的扩缩容参数;根据所述扩缩容参数,对所述应用***上的所述第一应用进行自动扩缩容。
一种应用***自动扩缩容装置,包括:自动扩缩容确定单元,用于根据获取到的应用***各应用运行数据,分别判断所述应用***中各应用是否需要进行自动扩缩容处理;运行参数获取单元,用于当自动扩缩容确定单元判断所述应用***中存在需要进行自动扩缩容处理的第一应用时,确定与所述第一应用关联的第一数据库,并获取所述第一数据库的当前运行参数;扩缩容参数确定单元,用于根据所述当前运行参数,确定所述第一应用对应的扩缩容参数;自动扩缩单元,用于根据所述扩缩容参数,对所述应用***上的所述第一应用进行自动扩缩容。
一种应用***自动扩缩容设备,包括:
处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:根据获取到的应用***各应用运行数据,分别判断所述应用***中各应用是否需要进行自动扩缩容处理;当判断所述应用***中存在需要进行自动扩缩容处理的第一应用时,确定与所述第一应用关联的第一数据库,并获取所述第一数据库的当前运行参数;根据所述当前运行参数,确定所述第一应用对应的扩缩容参数;根据所述扩缩容参数,对所述应用***上的所述第一应用进行自动扩缩容。
一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:根据获取到的应用***各应用运行数据,分别判断所述应用***中各应用是否需要进行自动扩缩容处理;当判断所述应用***中存在需要进行自动扩缩容处理的第一应用时,确定与所述第一应用关联的第一数据库,并获取所述第一数据库的当前运行参数;根据所述当前运行参数,确定所述第一应用对应的扩缩容参数;根据所述扩缩容参数,对所述应用***上的所述第一应用进行自动扩缩容。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
采用本申请实施例提供的应用***自动扩缩容方法,应用***可以根据获取到的应用运行数据,判断当前应用***中是否存在需要进行自动扩缩容处理的应用,当判断结果为是时,在对该应用进行自动扩缩容处理之前,应用***还会进一步确定该应用对应的数据库(即与该应用连接的后台数据库),并获取该数据库当前的运行参数,进而根据该数据库当前的运行参数,确定需要进行扩缩容处理的应用的扩缩容参数(主要包括可以扩缩容的节点数量),进而根据该扩缩容参数对应用进行扩缩容处理。由于采用本申请实施例所提供的自动扩缩容方法,在进行应用扩缩容时,除了会考虑应用本身的运行数据外,还会考虑后台数据库的性能,并根据后台数据库当前的运行参数,来确定本次扩缩容的具体参数,从而可以保证在进行自动扩缩容后,数据库还可以正常运行,而不会因为达到压力峰值而出现宕机,通过自动扩缩容保证了在访问流量激增的场景下应用的正常运行,同时通过根据数据库性能确定的扩缩容参数,保证了在进行扩缩容处理时数据库的正常运行,极大地提升用户体验,降低应用***的运维成本。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种应用***自动扩缩容方法的具体流程示意图;
图2为本申请实施例提供的一种扩缩容控制器的具体结构示意图;
图3为本申请实施例提供的一种应用***自动扩缩容装置的具体结构示意图;
图4为本申请实施例提供的一种应用***自动扩缩容设备的具体结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
本申请实施例提供的一种应用***自动扩缩容方法,用以解决现有应用***扩缩方案由于应用弹性扩缩容时并未考虑后端数据库的性能,而导致后端数据库因压力过大而出现宕机的问题。
本申请实施例提供的应用***自动扩缩容的执行主体,可以但不限于为数据库集群管理服务器、云平台管理服务器、云平台应用***服务器、集群管理服务器以及负载均衡***等中的至少一种;此外,该方法的执行主体还可以是在该些服务器上运行的应用程序(Application,APP)本身。
为便于描述,下文以该方法的执行主体为云平台应用***服务器为例,对该方法的实施方式进行介绍。可以理解,该方法的执行主体为云平台应用***服务器只是一种示例性的说明,并不应理解为对该方法的限定。
本申请所提供的应用***自动扩缩容方法的具体实现流程示意图如图1所示,主要包括下述步骤:
步骤11,根据获取到的应用***各应用运行数据,分别判断所述应用***中各应用是否需要进行自动扩缩容处理;当判断结果为是时,则执行步骤12;当判断结果为否时,则继续执行步骤11;
在本申请实施例中,云平台应用***可以通过负载均衡服务器对部署在应用***上的各个应用的运行数据进行监控,并根据监控结果判断应用***中是否存在需要进行自动扩缩容处理的应用服务。
在一种实施方式中,云平台应用***服务器上可以包含的多个应用服务,各应用服务可以部署在由云平台应用***的云计算管理OpenStack平台分配的虚拟机上。在云平台应用***上,每个应用服务都是多个节点(服务器)部署,从而可以保持当前应用服务是高可用,不会因为一台服务器出现异常,而导致应用服务瘫痪。云平台应用***可以将针对同一个应用的各个节点加入到目标集群中,针对该应用服务的外部请求到达目标集群的负载均衡服务器上(比如apache、nginx等),服务器会根据负载均衡算法(比如轮询算法、权重算法等)将该请求转发至该应用服务对应的目标集群中的某个节点上进行处理请求。
应用服务运行过程中,云平台应用***会对该应用服务对应的目标集群上的各个节点的运行数据进行监控。比如,可以按照预设时间间隔,通过监控模块(比如,Promettheus模块)来获取当前节点的运行数据,并根据获取到的该目标集群下所有节点的运行数据,确定该应用服务整体的运行数据。本申请实施例对云平台应用***具体采用何种方法获取应用运行数据不做限定。
在一种实施方式中,通过执行步骤11获取到的应用运行数据可以包括但不仅限于以下数据中的至少一种:应用服务对应的目标集群CPU使用率、内存使用率、每秒查询率QPS和带宽使用率等。
在本申请实施例中,云平台应用***可以根据应用服务对应目标集群的硬件性能(该硬件性能由该目标集群内已有全部硬件(服务器)的性能决定)以及预设的流量规则来确定是否需要进行自动扩缩容处理的,在一种实施方式中,判断所述应用***中各应用是否需要进行自动扩缩容处理的方法可以包括:根据所述应用***中是否存在资源使用数据和/或访问流量数据大于预设阈值的应用,判断所述应用***中各应用是否需要进行自动扩缩容处理。
其中,硬件性能可以是由云平台后台管理人员根据使用需要自行设置的,或者也可以是云平台根据历史业务数据自动生成的。举例而言,云平台应用***可以获取应用服务的历史业务数据,对历史业务数据进行特征提取,得到硬件性能指标,并根据硬件性能指标以及历史业务数据计算确定硬件性能指标的监控阈值,该硬件性能指标的监控阈值为一台服务器对应的监控阈值,则应用服务对应的监控阈值可以根据该应用服务对应的目标集群内所包含的服务器数量以及单台服务器的监控阈值计算得到。例如,某应用服务对应目标集群包含了5个节点(服务器),根据云平台应用***根据历史业务数据确定的监控阈值为N,则该应用服务当前的硬件性能监控阈值=5×N。
在确定了硬件性能监控阈值后,云平台应用***可以根据预设的访问流量规则以及硬件性能监控阈值,生成自动扩缩容判定机制,并根据获取到的应用运行数据,基于该自动扩缩容判定机制,确定是否需要进行自动扩缩容处理。
步骤12,当通过执行步骤11确定云平台应用***中存在需要进行自动扩缩容处理的第一应用时,确定与第一应用关联的第一数据库,并获取第一数据库的当前运行参数;
在一种实施方案中,云平台应用***基于K8S水平弹性扩缩控制器(kubernetesHorizontal Pod Autoscaler Controller,K8s HPA Controller)扩展开发了一种可以支持实时监控数据库运行参数进而实现对应用服务进行自动扩缩容处理的扩缩容控制器,该扩缩容控制器的具体架构如图2所示,主要包括:用户自定义资源清单(EventObjectdefinition),K8s接口服务(kubernetes API Server),自定义控制器Controller,指标服务器Adapter,用户自定义资源EventObject,K8s HPA以及外部事件等几个模块组成。其中,自定义控制器Controller,指标服务器Adapter,用户自定义资源EventObject为本申请实施例所提供的扩缩容控制器的核心组件,除此之外的其他模块为通用模块,故后文以这三个核心组件为例,对本方案所提供的自动扩缩容方法进行介绍。
在本申请实施例中,自定义控制器负责创建和更新Kubernetes内置的HPA对象,基于Controller创建的HPA对象,可以实现对业务应用进行扩缩容操作。
EventObject为kubernetes中的一种用户自定义资源,通过它可以连接到外部组件以获取相关参数,EventObject可以从EventObject definition清单中获取所需要的指标,并将其传递至外部组件进行参数获取。
Adapter为外部指标服务器,可以接收EventObject发送的指标参数,将EventObject获取的指标参数转化成HPA可以使用的格式,并传递给HPA。在本申请实施例中,Adapter主要充当适配器角色,将来自EventObject的指标转换为HPA可以理解和使用的形式。
在一种实施方式中,利用该扩缩容控制器,具体可以按照如下子步骤获取第一数据库的运行参数:
子步骤1201,确定第一数据库的标识信息;
其中,该标识信息可以包括第一数据库的第一标识以及待获取的所述运行指标的第二标识。
该第一标识具体可以是指数据库的连接信息或者数据库的唯一标识(比如编号)等,而待获取运行指标的第二标识可以是指待获取的指标名称。
子步骤1202,根据所述第一标识,生成结构化查询SQL语句;
其中,SQL语句用于获取所述第一数据库的连接数据。
子步骤1203,根据SQL语句以及第二标识,生成查询配置文件;
具体地,可以通过在yaml文件中增加:数据库连接信息、指标名以及用于获取所述第一数据库的连接数据SQL语句的方式来生成来查询配置文件。
子步骤1204,向所述第一数据库发送所述查询配置文件,以获取所述第一数据库的运行参数。
具体地,EventObject可以根据查询配置文件中的相关信息,连接第一数据看,并执行查询配置文件中的SQL语句,进而实时获取第一数据库的运行参数CurrentConnections,并将获取到的运行参数传递给Adapter服务。Adapter服务将获取到的运行参数与Controller创建的HPA对象进行资源格式适配,并将运行参数转化成HPA可以使用的格式。
另外,这里需要说明的是,在本申请实施例中,待获取的第一数据库的运行指标包括但不仅限于以下几种:数据库的CPU利用率、数据库的内存利用率以及数据库的磁盘利用率等。
步骤13,根据通过执行步骤12获取到的数据库当前运行参数,确定第一应用对应的扩缩容参数;
其中,该扩缩容参数用于指示针对该应用服务的本次自动扩缩容处理可以最大可以扩充(或者缩减)的节点个数。
在一种实施方式中,该扩缩容参数可以根据数据库当前运行参数和数据库标准运行参数之间的比率进行计算得出,具体地,本申请实施例可以采用如下方确定第一应用对应的扩缩容参数:确定所述第一数据库各当前运行参数对应的标准运行参数;根据所述当前运行参数与所述标准运行参数的比值,确定所述第一应用对应的扩缩容参数。
在一种实施方式中,以通过执行步骤12获取到的数据库运行参数为:当前连接数以及数据库CPU使用率为例,在本申请实施例中,可以按照如下公式[1]计算第一应用对应的扩缩容参数:
公式[1]:DesiredReplicas=Max{ceil[CurrentReplicas*(CurrentConnections/
DesiredConnections)],ceil[CurrentReplicas*(CurrentCpuValue/
DesiredCpuValue)]}
其中,DesiredReplicas表示扩缩容参数,CurrentReplicas表示第一应用对应的目标集群当前所拥有的节点数,CurrentConnections表示该第一数据库当前连接数,DesiredConnections表示该第一数据库的最大连接数,CurrentCpuValue表示该第一数据库的实时CPU利用率数值,DesiredCpuValue表示该第一数据库预先设置的最大可用CPU利用率数值。
步骤14,根据通过执行步骤13确定的扩缩容参数,对应用***上的第一应用进行自动扩缩容。
在本申请实施例中,在确定了扩缩容参数后,云平台应用***可以按照预设的自动扩缩容策略,对***上的第一应用进行自动扩缩容处理。本申请实施例对具体采用何种扩缩容策略不做限定。
采用本申请实施例提供的应用***自动扩缩容方法,应用***可以根据获取到的应用运行数据,判断当前应用***中是否存在需要进行自动扩缩容处理的应用,当判断结果为是时,在对该应用进行自动扩缩容处理之前,应用***还会进一步确定该应用对应的数据库(即与该应用连接的后台数据库),并获取该数据库当前的运行参数,进而根据该数据库当前的运行参数,确定需要进行扩缩容处理的应用的扩缩容参数(主要包括可以扩缩容的节点数量),进而根据该扩缩容参数对应用进行扩缩容处理。由于采用本申请实施例所提供的自动扩缩容方法,在进行应用扩缩容时,除了会考虑应用本身的运行数据外,还会考虑后台数据库的性能,并根据后台数据库当前的运行参数,来确定本次扩缩容的具体参数,从而可以保证在进行自动扩缩容后,数据库还可以正常运行,而不会因为达到压力峰值而出现宕机,通过自动扩缩容保证了在访问流量激增的场景下应用的正常运行,同时通过根据数据库性能确定的扩缩容参数,保证了在进行扩缩容处理时数据库的正常运行,极大地提升用户体验,降低应用***的运维成本。
在一种实施方式中,本申请实施例还提供了一种应用***自动扩缩容装置,用用以解决现有应用***扩缩方案由于应用弹性扩缩容时并未考虑后端数据库的性能,而导致后端数据库因压力过大而出现宕机的问题。该应用***自动扩缩容装置的具体结构示意图如图3所示,包括:自动扩缩容确定单元31、运行参数获取单元32、扩缩容参数确定单元33以及自动扩缩单元34。
其中,自动扩缩容确定单元31,用于根据获取到的应用***各应用运行数据,分别判断所述应用***中各应用是否需要进行自动扩缩容处理;
运行参数获取单元32,用于当自动扩缩容确定单元判断所述应用***中存在需要进行自动扩缩容处理的第一应用时,确定与所述第一应用关联的第一数据库,并获取所述第一数据库的当前运行参数;
扩缩容参数确定单元33,用于根据所述当前运行参数,确定所述第一应用对应的扩缩容参数;
自动扩缩单元34,用于根据所述扩缩容参数,对所述应用***上的所述第一应用进行自动扩缩容。
在一种实施方式中,自动扩缩容确定单元31,具体用于:根据所述应用***中是否存在资源使用数据和/或访问流量数据大于预设阈值的应用,判断所述应用***中各应用是否需要进行自动扩缩容处理。
在一种实施方式中,运行参数获取单元32,具体用于确定所述第一数据库的标识信息,其中,所述标识信息包括所述第一数据库的第一标识以及待获取的所述运行指标的第二标识;根据所述第一标识,生成结构化查询SQL语句,其中,所述SQL语句用于获取所述第一数据库的连接数据;根据所述SQL语句以及所述第二标识,生成查询配置文件;向所述第一数据库发送所述查询配置文件,以获取所述第一数据库的运行参数。
在一种实施方式中,所述第一数据库的运行指标,包括以下至少一种:所述第一数据库的CPU利用率;所述第一数据库的内存利用率;所述第一数据库的磁盘利用率。
在一种实施方式中,扩缩容参数确定单元33,具体用于确定所述第一数据库各当前运行参数对应的标准运行参数;根据所述当前运行参数与所述标准运行参数的比值,确定所述第一应用对应的扩缩容参数。
采用本申请实施例提供的应用***自动扩缩容方法,应用***可以根据获取到的应用运行数据,判断当前应用***中是否存在需要进行自动扩缩容处理的应用,当判断结果为是时,在对该应用进行自动扩缩容处理之前,应用***还会进一步确定该应用对应的数据库(即与该应用连接的后台数据库),并获取该数据库当前的运行参数,进而根据该数据库当前的运行参数,确定需要进行扩缩容处理的应用的扩缩容参数(主要包括可以扩缩容的节点数量),进而根据该扩缩容参数对应用进行扩缩容处理。由于采用本申请实施例所提供的自动扩缩容方法,在进行应用扩缩容时,除了会考虑应用本身的运行数据外,还会考虑后台数据库的性能,并根据后台数据库当前的运行参数,来确定本次扩缩容的具体参数,从而可以保证在进行自动扩缩容后,数据库还可以正常运行,而不会因为达到压力峰值而出现宕机,通过自动扩缩容保证了在访问流量激增的场景下应用的正常运行,同时通过根据数据库性能确定的扩缩容参数,保证了在进行扩缩容处理时数据库的正常运行,极大地提升用户体验,降低应用***的运维成本。
图4是本申请的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成应用***自动扩缩容装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
根据获取到的应用***各应用运行数据,分别判断所述应用***中各应用是否需要进行自动扩缩容处理;当判断所述应用***中存在需要进行自动扩缩容处理的第一应用时,确定与所述第一应用关联的第一数据库,并获取所述第一数据库的当前运行参数;根据所述当前运行参数,确定所述第一应用对应的扩缩容参数;根据所述扩缩容参数,对所述应用***上的所述第一应用进行自动扩缩容。
上述如本申请图4所示实施例揭示的应用***自动扩缩容电子设备执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下操作:
根据获取到的应用***各应用运行数据,分别判断所述应用***中各应用是否需要进行自动扩缩容处理;当判断所述应用***中存在需要进行自动扩缩容处理的第一应用时,确定与所述第一应用关联的第一数据库,并获取所述第一数据库的当前运行参数;根据所述当前运行参数,确定所述第一应用对应的扩缩容参数;根据所述扩缩容参数,对所述应用***上的所述第一应用进行自动扩缩容。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种应用***自动扩缩容方法,其特征在于,包括:
根据获取到的应用***各应用运行数据,分别判断所述应用***中各应用是否需要进行自动扩缩容处理;
当判断所述应用***中存在需要进行自动扩缩容处理的第一应用时,确定与所述第一应用关联的第一数据库,并获取所述第一数据库的当前运行参数;
根据所述当前运行参数,确定所述第一应用对应的扩缩容参数;
根据所述扩缩容参数,对所述应用***上的所述第一应用进行自动扩缩容。
2.根据权利要求1所述的方法,其特征在于,所述应用运行数据,包括:所述应用的资源使用数据以及所述应用的访问流量数据,则判断所述应用***中各应用是否需要进行自动扩缩容处理,具体包括:
根据所述应用***中是否存在资源使用数据和/或访问流量数据大于预设阈值的应用,判断所述应用***中各应用是否需要进行自动扩缩容处理。
3.根据权利要求1所述的方法,其特征在于,所述第一数据库的当前运行参数,包括:所述第一数据库的运行指标以及所述第一数据库的连接数据;则获取所述第一数据库的运行参数,具体包括:
确定所述第一数据库的标识信息,其中,所述标识信息包括所述第一数据库的第一标识以及待获取的所述运行指标的第二标识;
根据所述第一标识,生成结构化查询SQL语句,其中,所述SQL语句用于获取所述第一数据库的连接数据;
根据所述SQL语句以及所述第二标识,生成查询配置文件;
向所述第一数据库发送所述查询配置文件,以获取所述第一数据库的运行参数。
4.根据权利要求3所述的方法,其特征在于,所述第一数据库的运行指标,包括以下至少一种:
所述第一数据库的CPU利用率;
所述第一数据库的内存利用率;
所述第一数据库的磁盘利用率。
5.根据权利要求1所述的方法,其特征在于,所述根据所述当前运行参数,确定所述第一应用对应的扩缩容参数,具体包括:
确定所述第一数据库各当前运行参数对应的标准运行参数;
根据所述当前运行参数与所述标准运行参数的比值,确定所述第一应用对应的扩缩容参数。
6.一种应用***自动扩缩容装置,其特征在于,包括:
自动扩缩容确定单元,用于根据获取到的应用***各应用运行数据,分别判断所述应用***中各应用是否需要进行自动扩缩容处理;
运行参数获取单元,用于当自动扩缩容确定单元判断所述应用***中存在需要进行自动扩缩容处理的第一应用时,确定与所述第一应用关联的第一数据库,并获取所述第一数据库的当前运行参数;
扩缩容参数确定单元,用于根据所述当前运行参数,确定所述第一应用对应的扩缩容参数;
自动扩缩单元,用于根据所述扩缩容参数,对所述应用***上的所述第一应用进行自动扩缩容。
7.根据权利要求6所述的装置,其特征在于,运行参数获取单元,具体用于:
确定所述第一数据库的标识信息,其中,所述标识信息包括所述第一数据库的第一标识以及待获取的所述运行指标的第二标识;
根据所述第一标识,生成结构化查询SQL语句,其中,所述SQL语句用于获取所述第一数据库的连接数据;
根据所述SQL语句以及所述第二标识,生成查询配置文件;
向所述第一数据库发送所述查询配置文件,以获取所述第一数据库的运行参数。
8.根据权利要求6所述的装置,其特征在于,扩缩容参数确定单元,具体用于:
确定所述第一数据库各当前运行参数对应的标准运行参数;
根据所述当前运行参数与所述标准运行参数的比值,确定所述第一应用对应的扩缩容参数。
9.一种应用***自动扩缩容设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至5中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至5中任一项所述的方法。
CN202211668158.7A 2022-12-23 2022-12-23 一种应用***自动扩缩容方法、装置、设备以及存储介质 Pending CN116166424A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211668158.7A CN116166424A (zh) 2022-12-23 2022-12-23 一种应用***自动扩缩容方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211668158.7A CN116166424A (zh) 2022-12-23 2022-12-23 一种应用***自动扩缩容方法、装置、设备以及存储介质

Publications (1)

Publication Number Publication Date
CN116166424A true CN116166424A (zh) 2023-05-26

Family

ID=86421127

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211668158.7A Pending CN116166424A (zh) 2022-12-23 2022-12-23 一种应用***自动扩缩容方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN116166424A (zh)

Similar Documents

Publication Publication Date Title
WO2017028697A1 (zh) 计算机集群的扩容和缩容方法及设备
US10440136B2 (en) Method and system for resource scheduling
CN108737132B (zh) 一种告警信息处理方法及装置
CN111966289B (zh) 基于Kafka集群的分区优化方法和***
CN112764920B (zh) 一种边缘应用部署方法、装置、设备和存储介质
CN112367384B (zh) 基于Kafka集群的动态限速方法、装置以及计算机设备
CN108234231B (zh) 云计算环境中弹性伸缩配置的方法、装置以及电子设备
CN111010303A (zh) 一种服务器控制方法及装置
CN114356557A (zh) 一种集群扩容方法及装置
CN111291252B (zh) 一种每秒查询率的调整方法、装置、电子设备及存储介质
CN106570091B (zh) 一种增强分布式集群文件***的高可用性的方法
CN113595773B (zh) 信息处理方法、装置、电子设备和存储介质
CN110290210B (zh) 接口调用***中不同接口流量比例自动调配方法及装置
CN117290557A (zh) 一种数据加载方法、相关装置、设备以及可读存储介质
CN109284275B (zh) 一种云平台虚拟机文件***监控方法和装置
CN114124942A (zh) 核心网资源调度方法、装置及电子设备
CN116166424A (zh) 一种应用***自动扩缩容方法、装置、设备以及存储介质
CN115442262B (zh) 一种资源评估方法、装置、电子设备及存储介质
CN115941622A (zh) 一种带宽调节方法、***、设备及存储介质
CN105763508B (zh) 一种数据访问方法和应用服务器
CN112910988A (zh) 一种资源获取方法及资源调度装置
CN110321133B (zh) H5应用部署方法及装置
CN110955579A (zh) 一种基于Ambari的大数据平台的监测方法
CN113254209B (zh) 一种容量管理方法、装置、电子设备及可读存储介质
CN113010263A (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