CN112346872B - 基于服务调用链路的云计算扩容方法及装置 - Google Patents

基于服务调用链路的云计算扩容方法及装置 Download PDF

Info

Publication number
CN112346872B
CN112346872B CN202011328076.9A CN202011328076A CN112346872B CN 112346872 B CN112346872 B CN 112346872B CN 202011328076 A CN202011328076 A CN 202011328076A CN 112346872 B CN112346872 B CN 112346872B
Authority
CN
China
Prior art keywords
container
service
link
call
cloud computing
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
CN202011328076.9A
Other languages
English (en)
Other versions
CN112346872A (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202011328076.9A priority Critical patent/CN112346872B/zh
Publication of CN112346872A publication Critical patent/CN112346872A/zh
Application granted granted Critical
Publication of CN112346872B publication Critical patent/CN112346872B/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/5072Grid computing
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明属于云计算技术领域,本发明提供了一种基于服务调用链路的云计算扩容方法及装置,基于服务调用链路的云计算扩容方法包括:监控运行节点的副本数量;根据所述副本数量获取所述运行节点所在调用链的上下文以及执行时间;根据所述上下文以及执行时间对所述调用链下游的容器进行扩容。本发明通过对服务调用链路进行解析,对服务提供方容器进行扩容,使得整条服务链路上的容器负载压力基本稳定。同时实时监控服务调用链路上服务响应时长和容器性能指标,一旦发生异常情况,最大限度保障服务调用的平稳和容器的稳定运行,从而降低弹性扩容可能带来的风险。

Description

基于服务调用链路的云计算扩容方法及装置
技术领域
本发明涉及云计算技术领域,具体涉及一种基于服务调用链路的云计算扩容方法及装置。
背景技术
随着IT架构转型,越来越多公司将业务部署在云上集群,云平台提供的快速弹性伸缩能力,为应对突发流量增长场景提供了有力的支撑,同时提升了资源利用率,降低了人力运维成本。
基于分布式微服务应用场景下,服务提供方容器启动后向注册中心发布并注册自己的服务,服务调用方初始化时向注册中心订阅自己需要的服务并可以实时获取到服务提供方信息,从而保证服务调用方正常向服务提供方发起服务调用。当外部访问压力突增,例如金融系统中的纪念币发放场景,某个节点配置的自动扩容规则生效后,容器数量相应增多,对外调用服务从而对服务提供方节点访问压力突增。如果没有及时去对服务提供方容器进行扩容,当台容器承受的负载压力过大,可能会引发性能问题。
综上,目前没有较好地解决容器弹性扩容时对其调用服务的提供方容器造成负载压力问题的方案,因此,如何提供一种新的方案,解决上述技术问题是本领域亟待解决的技术难题。
发明内容
本发明属于人工智能技术领域,针对现有技术中的问题,本发明提供的基于服务调用链路的云计算扩容方法及装置,通过对服务调用链路进行解析,对服务提供方容器进行扩容,使得整条服务链路上的容器负载压力基本稳定。同时实时监控服务调用链路上服务响应时长和容器性能指标,一旦发生异常情况,最大限度保障服务调用的平稳和容器的稳定运行,从而降低弹性扩容可能带来的风险。
为解决上述技术问题,本发明提供以下技术方案:
第一方面,本发明提供一种基于服务调用链路的云计算扩容方法,包括:
监控运行节点的副本数量;
根据所述副本数量获取所述运行节点所在调用链的上下文以及执行时间;
根据所述上下文以及执行时间对所述调用链下游的容器进行扩容。
一实施例中,所述监控运行节点的副本数量包括:
调用Kubernetes集群运行节点api接口获取所述运行节点的状态信息;
解析状态信息中的json字符串获取所述运行节点当前可用容器的副本数量。
一实施例中,所述根据所述副本数量获取所述运行节点所在调用链的上下文以及执行时间,包括:
当所述副本数量超过预设值时,获取所述调用链的上下文以及执行时间。
一实施例中,所述根据所述上下文以及执行时间对所述调用链下游的容器进行扩容,包括:
通过定时调用服务链路查询接口以及容器监控数据查询接口获取所述容器的服务响应时间、容器CPU以及容器内存指标;
当所述服务响应时间、容器CPU以及容器内存指标超过阈值时,扩容所述容器。
第二方面,本发明提供一种基于服务调用链路的云计算扩容装置,包括:
副本数量监控单元,用于监控运行节点的副本数量;
调用链数据获取单元,用于根据所述副本数量获取所述运行节点所在调用链的上下文以及执行时间;
容器扩容单元,用于根据所述上下文以及执行时间对所述调用链下游的容器进行扩容。
一实施例中,所述副本数量监控单元包括:
状态信息获取模块,用于调用Kubernetes集群运行节点api接口获取所述运行节点的状态信息;
字符串解析模块,用于解析状态信息中的json字符串获取所述运行节点当前可用容器的副本数量。
一实施例中,所述调用链数据获取单元具体用于获取所述调用链的上下文以及执行时间。
一实施例中,所述容器扩容单元包括:
指标获取模块,用于通过定时调用服务链路查询接口以及容器监控数据查询接口获取所述容器的服务响应时间、容器CPU以及容器内存指标;
容器扩容模块,用于扩容所述容器。
第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现基于服务调用链路的云计算扩容方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现基于服务调用链路的云计算扩容方法的步骤。
从上述描述可知,本发明实施例提供的基于服务调用链路的云计算扩容方法及装置,首先监控运行节点的副本数量;接着,根据副本数量获取运行节点所在调用链的上下文以及执行时间;最后根据上下文以及执行时间对调用链下游的容器进行扩容。本发明通过对服务调用链路进行解析,对服务提供方容器进行扩容,使得整条服务链路上的容器负载压力基本稳定。同时实时监控服务调用链路上服务响应时长和容器性能指标,一旦发生异常情况,最大限度保障服务调用的平稳和容器的稳定运行,从而降低弹性扩容可能带来的风险。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例中基于服务调用链路的云计算扩容方法流程示意图;
图2为本发明的实施例中步骤100的流程示意图;
图3为本发明的实施例中步骤200的流程示意图;
图4为本发明的实施例中步骤300的流程示意图;
图5为本发明的具体应用实例中基于服务调用链路的云计算扩容系统结构框图;
图6为本发明的具体应用实例中运行节点扩容监控装置结构框图;
图7为本发明的具体应用实例中服务调用链路分析装置结构框图;
图8为本发明的具体应用实例中服务和容器监控装置结构框图;
图9为本发明的具体应用实例中容器自动扩容装置结构框图;
图10为本发明的具体应用实例中基于服务调用链路的云计算扩容方法的流程示意图;
图11为本发明的实施例中基于服务调用链路的云计算扩容装置的结构框图;
图12为本发明的实施例中副本数量监控单元结构示意图;
图13为本发明的实施例中容器扩容单元结构示意图;
图14为本发明的实施例中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本发明的实施例提供一种基于服务调用链路的云计算扩容方法的具体实施方式,参见图1,该方法具体包括如下内容:
步骤100:监控运行节点的副本数量。
可以理解的是,容器是用来存储和组织其他对象的对象,是应用服务器中位于组件和平台之间的接口集合,多个容器构成容器组;步骤100中的副本数量是指运行节点中容器组的个数。
步骤200:根据所述副本数量获取所述运行节点所在调用链的上下文以及执行时间。
在系统完成一次业务调用的过程中,把服务之间的调用信息(时间、接口、层次、结果)打点到日志中,然后将所有的打点数据连接为一个树状链条就产生了一个调用链。跟踪系统把过程中产生的日志信息进行分析处理,将业务端到端的执行完整的调用过程进行还原,根据不同维度进行统计分析;从而标识出有异常的服务调用,能够快速分析定界到出异常的服务;同时可根据数据统计分析系统性能瓶颈。
步骤300:根据所述上下文以及执行时间对所述调用链下游的容器进行扩容。
具体地,通过调用服务链路查询接口获取服务所在调用链路的上下文信息,分析出调用链路下游的服务及所在容器信息。然后对容器进行横向扩容。
从上述描述可知,本发明实施例提供的基于服务调用链路的云计算扩容方法,首先监控运行节点的副本数量;接着,根据副本数量获取运行节点所在调用链的上下文以及执行时间;最后根据上下文以及执行时间对调用链下游的容器进行扩容。本发明通过对服务调用链路进行解析,对服务提供方容器进行扩容,使得整条服务链路上的容器负载压力基本稳定。同时实时监控服务调用链路上服务响应时长和容器性能指标,一旦发生异常情况,最大限度保障服务调用的平稳和容器的稳定运行,从而降低弹性扩容可能带来的风险。
一实施例中,参见图2,步骤100包括:
步骤101:调用Kubernetes集群运行节点api接口获取所述运行节点的状态信息;
可以理解的是,Kubernetes一个开源的容器编排引擎,支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。
步骤102:解析状态信息中的json字符串获取所述运行节点当前可用容器的副本数量。
具体地,解析json字符串获取节点当前可用容器数、预定义副本数状态,并存储在系统内存中。
一实施例中,参见图3,步骤200包括:
步骤201:当所述副本数量超过预设值时,获取所述调用链的上下文以及执行时间。
具体地,对获取到的运行节点副本数量与其前一时刻进行比较,如果可用容器数超过预定义副本数且较上一时间点出现增长,则获取所述调用链的上下文以及执行时间。
一实施例中,参见图4,步骤300包括:
步骤301:通过定时调用服务链路查询接口以及容器监控数据查询接口获取所述容器的服务响应时间、容器CPU以及容器内存指标;
步骤302:当所述服务响应时间、容器CPU以及容器内存指标超过阈值时,扩容所述容器。
在步骤301以及步骤302中,每隔1分钟从服务调用链路中获取服务响应时间,存储在数据库中,数据做定期清理。可从prometheus监控系统中通过api接口获取容器监控数据,包含容器实时内存使用量、CPU使用量等指标,存储在数据库中(数据做定期清理)。以预设时间间隔查询服务响应时间、容器内存CPU使用量,针对预定义的规则进行分析,如果上述指标超出规则阈值则进行横向扩容。
为进一步地说明本方案,本发明提供基于服务调用链路的云计算扩容方法的具体应用实例,具体包括如下内容。
在本具体应用实例中,还提供一种基于服务调用链路的云计算扩容系统,参见图5,该系统包括:运行节点扩容监控装置1、服务调用链路分析装置2、服务和容器监控装置3、容器自动扩容装置4。运行节点扩容监控装置1与服务调用链路分析装置2相连;服务调用链路分析装置2与服务和容器监控装置3、容器自动扩容装置4相连;服务和容器监控装置3与容器自动扩容装置4相连。
运行节点扩容监控装置1:用于对运行节点的副本数进行监控,通过定时获取运行节点副本数与上一时间点获取的副本数进行比较,当副本数量出现增长时,触发服务调用链路分析装置2。
服务调用链路分析装置2:从运行节点扩容监控装置1中获取到容器信息和服务信息,主要包含容器编号、服务名。通过调用服务链路查询接口获取服务所在调用链路的上下文信息,分析出调用链路下游的服务及所在容器信息。然后,触发容器自动扩容装置4对容器进行横向扩容,同时触发服务和容器监控装置3。
服务和容器监控装置3:对服务调用链路分析装置2传入的服务、容器信息进行监控,通过定时调用服务链路查询接口和容器监控数据查询接口获得服务响应时间、容器CPU、容器内存指标,并将获取到的指标与预配置的阈值进行比较,如果超出范围则触发容器自动扩容装置4。
容器自动扩容装置4:获取运行节点副本数,与预配置的上限进行比较,如果在正常范围内,则调用容器扩容接口进行横向扩容。然后,通过定时获取节点状态信息,监控容器扩容动作正常完成。
图6是运行节点扩容监控装置1内部结构图示意图,运行节点扩容监控装置1包括运行节点状态获取单元11、运行节点状态分析单元12,具体地:
运行节点状态获取单元11:通过调用Kubernetes集群运行节点api接口获取运行节点状态信息,然后解析json字符串获取节点当前可用容器数、预定义副本数状态,并存储在系统内存中。
运行节点状态分析单元12:对获取到的节点副本数状态与前一时刻进行比较,如果可用容器数超过预定义副本数且较上一时间点出现增长,则触发服务调用链路分析装置2。
图7是服务调用链路分析装置2内部结构图示意图,服务调用链路分析装置2包括服务调用链路信息获取单元21和服务调用链路分析单元22,进一步地:
服务调用链路信息获取单元21:通过调用服务链路查询接口,获取当前服务所在调用链路的上下文、响应时间,从服务参数中获取到对应的容器信息,然后对接服务调用链路分析单元22。
服务调用链路分析单元22:对服务调用链路信息获取单元21中获取到的服务链路进行解析,依次获取服务链路下游的服务及容器信息,直到解析到调用链路中最后一个服务。根据弹性扩容的容器扩容比例,调用容器自动扩容装置4对下游容器依次进行等比例扩容。
图8是服务和容器监控装置3内部结构图示意图,服务和容器监控装置3包括服务响应时间获取单元31、容器监控指标获取单元32和监控分析单元33。其中:
服务响应时间获取单元31:每隔1分钟从服务调用链路中获取服务响应时间,存储在数据库中,数据做定期清理。
容器监控指标获取单元32:从prometheus监控系统中通过api接口获取容器监控数据,包含容器实时内存使用量、CPU使用量等指标,存储在数据库中,数据做定期清理。
监控分析单元33:定时每隔1分钟去查询服务响应时间、容器内存CPU使用量,针对预定义的规则进行分析,如果上述指标超出规则阈值则调用容器自动扩容装置4进行横向扩容。
图9所示的是容器自动扩容装置4的内部组成图,容器自动扩容装置4包括扩容前分析单元41、扩容执行单元42,和扩容后监控单元43,其中:
扩容前分析单元41:针对待扩容的节点副本数进行分析,如果副本数超过了规则定义的上限,或者集群资源使用率超过上限,则不执行操作,否则连接扩容执行单元42。
扩容执行单元42:按照预期的副本数更新运行节点,调用集群api接口进行节点扩容,将节点目标副本数调整为预期值,然后连接扩容后监控单元43。
扩容后监控单元43:对于扩容节点进行定期检查状态,获取可用容器数、容器副本数状态信息和预期副本数进行比较,判断扩容是否正常完成,如果超过一定时间没有正常达到预期副本数,则会认为扩容失败,对接报警系统发给对应责任人。
基于上述的基于服务调用链路的云计算扩容系统,本具体应用实例所提供基于服务调用链路的云计算扩容方法包括如下内容,如图10所示。
步骤S101:运行节点监控装置1开启,实时监控运行节点状态是否发生需要扩容情况,如果是则执行步骤S102。
具体地,对运行节点的副本数进行定时监控,当发现运行节点副本数量出现增长时,触发服务调用链路分析装置2。
步骤S102:服务调用链路分析装置2开始调用链路分析。
对扩容容器中服务调用链路进行梳理,获取服务调用链路下游的服务所在容器信息,触发容器自动扩容装置4对其进行横向扩容,然后触发服务和容器监控装置3,传入服务调用链下游的服务名、容器编号信息。
针对传入的服务和容器进行监控,按照定义的扩容策略,当服务响应时间超过某个阈值或者容器CPU、内存超过某个阈值时,触发容器自动扩容装置4。
步骤S103:调用容器自动扩容装置4对服务调用链路下游服务提供方容器进行扩容。
获取其当前运行副本数量,如果在定义的副本上限范围内,则调用容器扩容接口进行横向扩容,之后监控节点副本数正常达到预期数量后,结束该步骤。
步骤S104:启动服务和容器监控装置3,对服务提供方容器性能和对应服务响应时长指标进行定期监控。
步骤S105:监控服务响应时长和容器性能指标是否超出阈值,如果是则执行步骤S106。
步骤S106:调用容器自动扩容装置4进行横向扩容。
从上述描述可知,本发明具体应用实例提供的基于服务调用链路的云计算扩容方法,首先监控运行节点的副本数量;接着,根据副本数量获取运行节点所在调用链的上下文以及执行时间;最后根据上下文以及执行时间对调用链下游的容器进行扩容。本发明可解决在容器基于一定伸缩规则自动完成弹性扩容后,对其调用服务的提供方容器造成负载压力大的问题。本发明支持在容器发生弹性扩容后,自动触发获取容器内服务所在调用链的上下文和执行时间等指标信息,按照服务调用方容器扩容比例对调用链下游的服务提供方容器进行扩容。并且通过引入扩容监控策略,支持对调用链下游的服务响应时间和容器性能指标进行监控,当指标超过一定阈值,自动触发服务提供方容器横向扩容。
基于同一发明构思,本申请实施例还提供了基于服务调用链路的云计算扩容装置,可以用于实现上述实施例所描述的方法,如下面的实施例。由于基于服务调用链路的云计算扩容装置解决问题的原理与基于服务调用链路的云计算扩容方法相似,因此基于服务调用链路的云计算扩容装置的实施可以参见基于服务调用链路的云计算扩容方法实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本发明的实施例提供一种能够实现基于服务调用链路的云计算扩容方法的基于服务调用链路的云计算扩容装置的具体实施方式,参见图11,基于服务调用链路的云计算扩容装置具体包括如下内容:
副本数量监控单元10,用于监控运行节点的副本数量;
调用链数据获取单元20,用于根据所述副本数量获取所述运行节点所在调用链的上下文以及执行时间;
容器扩容单元30,用于根据所述上下文以及执行时间对所述调用链下游的容器进行扩容。
一实施例中,参见图12,所述副本数量监控单元10包括:
状态信息获取模块101,用于调用Kubernetes集群运行节点api接口获取所述运行节点的状态信息;
字符串解析模块102,用于解析状态信息中的json字符串获取所述运行节点当前可用容器的副本数量。
一实施例中,所述调用链数据获取单元20具体用于获取所述调用链的上下文以及执行时间。
一实施例中,参见图13,所述容器扩容单元30包括:
指标获取模块301,用于通过定时调用服务链路查询接口以及容器监控数据查询接口获取所述容器的服务响应时间、容器CPU以及容器内存指标;
容器扩容模块302,用于扩容所述容器。
从上述描述可知,本发明实施例提供的基于服务调用链路的云计算扩容装置,首先监控运行节点的副本数量;接着,根据副本数量获取运行节点所在调用链的上下文以及执行时间;最后根据上下文以及执行时间对调用链下游的容器进行扩容。本发明通过对服务调用链路进行解析,对服务提供方容器进行扩容,使得整条服务链路上的容器负载压力基本稳定。同时实时监控服务调用链路上服务响应时长和容器性能指标,一旦发生异常情况,最大限度保障服务调用的平稳和容器的稳定运行,从而降低弹性扩容可能带来的风险。
上述实施例阐明的装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为电子设备,具体的,电子设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中电子设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现上述基于服务调用链路的云计算扩容方法的步骤,该步骤包括:
步骤100:监控运行节点的副本数量;
步骤200:根据所述副本数量获取所述运行节点所在调用链的上下文以及执行时间;
步骤300:根据所述上下文以及执行时间对所述调用链下游的容器进行扩容。
下面参考图14,其示出了适于用来实现本申请实施例的电子设备600的结构示意图。
如图14所示,电子设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM))603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有系统600操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述基于服务调用链路的云计算扩容方法的步骤,该步骤包括:
步骤100:监控运行节点的副本数量;
步骤200:根据所述副本数量获取所述运行节点所在调用链的上下文以及执行时间;
步骤300:根据所述上下文以及执行时间对所述调用链下游的容器进行扩容。
在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上该仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (8)

1.一种基于服务调用链路的云计算扩容方法,其特征在于,包括:
监控运行节点的副本数量;
根据所述副本数量获取所述运行节点所在调用链的上下文以及执行时间;
根据所述上下文以及执行时间对所述调用链下游的容器进行扩容;
所述根据所述上下文以及执行时间对所述调用链下游的容器进行扩容,包括:
通过定时调用服务链路查询接口以及容器监控数据查询接口获取所述容器的服务响应时间、容器CPU以及容器内存指标;
当所述服务响应时间、容器CPU以及容器内存指标超过阈值时,扩容所述容器。
2.根据权利要求1所述的基于服务调用链路的云计算扩容方法,其特征在于,所述监控运行节点的副本数量包括:
调用Kubernetes集群运行节点api接口获取所述运行节点的状态信息;
解析状态信息中的json字符串获取所述运行节点当前可用容器的副本数量。
3.根据权利要求1所述的基于服务调用链路的云计算扩容方法,其特征在于,所述根据所述副本数量获取所述运行节点所在调用链的上下文以及执行时间,包括:
当所述副本数量超过预设值时,获取所述调用链的上下文以及执行时间。
4.一种基于服务调用链路的云计算扩容装置,其特征在于,包括:
副本数量监控单元,用于监控运行节点的副本数量;
调用链数据获取单元,用于根据所述副本数量获取所述运行节点所在调用链的上下文以及执行时间;
容器扩容单元,用于根据所述上下文以及执行时间对所述调用链下游的容器进行扩容;
所述容器扩容单元包括:
指标获取模块,用于通过定时调用服务链路查询接口以及容器监控数据查询接口获取所述容器的服务响应时间、容器CPU以及容器内存指标;
容器扩容模块,用于当所述服务响应时间、容器CPU以及容器内存指标超过阈值时,扩容所述容器。
5.根据权利要求4所述的基于服务调用链路的云计算扩容装置,其特征在于,所述副本数量监控单元包括:
状态信息获取模块,用于调用Kubernetes集群运行节点api接口获取所述运行节点的状态信息;
字符串解析模块,用于解析状态信息中的json字符串获取所述运行节点当前可用容器的副本数量。
6.根据权利要求4所述的基于服务调用链路的云计算扩容装置,其特征在于,所述调用链数据获取单元具体用于获取所述调用链的上下文以及执行时间。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至3任一项所述基于服务调用链路的云计算扩容方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至3任一项所述基于服务调用链路的云计算扩容方法的步骤。
CN202011328076.9A 2020-11-24 2020-11-24 基于服务调用链路的云计算扩容方法及装置 Active CN112346872B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011328076.9A CN112346872B (zh) 2020-11-24 2020-11-24 基于服务调用链路的云计算扩容方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011328076.9A CN112346872B (zh) 2020-11-24 2020-11-24 基于服务调用链路的云计算扩容方法及装置

Publications (2)

Publication Number Publication Date
CN112346872A CN112346872A (zh) 2021-02-09
CN112346872B true CN112346872B (zh) 2023-09-26

Family

ID=74364516

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011328076.9A Active CN112346872B (zh) 2020-11-24 2020-11-24 基于服务调用链路的云计算扩容方法及装置

Country Status (1)

Country Link
CN (1) CN112346872B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112882794B (zh) * 2021-02-25 2022-10-28 重庆紫光华山智安科技有限公司 pod扩容方法、装置、节点及存储介质
CN114818645B (zh) * 2022-06-29 2022-10-28 深圳红途科技有限公司 基于数据主体的自动化报告生成方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106227605A (zh) * 2016-07-26 2016-12-14 北京北森云计算股份有限公司 一种多语言云编译的动态微服务扩容方法及装置
CN111078504A (zh) * 2019-12-25 2020-04-28 深圳前海环融联易信息科技服务有限公司 一种分布式调用链跟踪方法、装置、计算机设备及存储介质
CN111464355A (zh) * 2020-03-31 2020-07-28 北京金山云网络技术有限公司 Kubernetes容器集群的伸缩容控制方法、装置和网络设备
CN111770022A (zh) * 2020-06-28 2020-10-13 中国平安财产保险股份有限公司 基于链路监控的扩容方法、系统、设备及计算机存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106227605A (zh) * 2016-07-26 2016-12-14 北京北森云计算股份有限公司 一种多语言云编译的动态微服务扩容方法及装置
CN111078504A (zh) * 2019-12-25 2020-04-28 深圳前海环融联易信息科技服务有限公司 一种分布式调用链跟踪方法、装置、计算机设备及存储介质
CN111464355A (zh) * 2020-03-31 2020-07-28 北京金山云网络技术有限公司 Kubernetes容器集群的伸缩容控制方法、装置和网络设备
CN111770022A (zh) * 2020-06-28 2020-10-13 中国平安财产保险股份有限公司 基于链路监控的扩容方法、系统、设备及计算机存储介质

Also Published As

Publication number Publication date
CN112346872A (zh) 2021-02-09

Similar Documents

Publication Publication Date Title
US9256412B2 (en) Scheduled and quarantined software deployment based on dependency analysis
CN102880503A (zh) 数据分析系统及数据分析方法
CN112346872B (zh) 基于服务调用链路的云计算扩容方法及装置
US9055065B2 (en) Managing participant order in distributed transactions
CN111865622B (zh) 基于规则引擎集群的云服务计量计费方法及系统
CN110543512B (zh) 一种信息同步方法,装置及系统
CN111949389B (zh) 基于Slurm的信息采集方法和装置、服务器、计算机可读存储介质
CN112579319A (zh) 一种基于LRU Cache优化的服务调用方法及装置
CN110728498A (zh) 一种信息交互方法和装置
CN106777265B (zh) 一种业务数据的处理方法及装置
CN114338684B (zh) 一种能源管理系统及方法
CN112783618A (zh) 一种任务调度监控系统、计算机设备及存储介质
CN110795331A (zh) 软件测试的方法和装置
CN112631756A (zh) 一种应用于航天测控软件的分布式调控方法及装置
CN110807058B (zh) 一种导出数据的方法和系统
CN113807539B (zh) 机器学习与图形算力的高复用方法、系统、介质及终端
CN111934932B (zh) 一种互联网架构评价方法及装置
CN110413427B (zh) 订阅数据拉取方法、装置、设备及存储介质
CN113296901A (zh) 实现弹性处理的方法及设备和实现弹性预处理的方法
CN113377489A (zh) 基于云平台的遥感智能监测应用的构建运行方法和装置
CN112799797A (zh) 一种任务管理的方法和装置
CN113760836B (zh) 一种宽表计算方法和装置
CN110321250B (zh) 一种针对应用的容灾方法及装置
CN113590611B (zh) 区块执行方法、计算机设备和存储介质
CN113114612B (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