CN114518948A - 面向大规模微服务应用的动态感知重调度的方法及应用 - Google Patents
面向大规模微服务应用的动态感知重调度的方法及应用 Download PDFInfo
- Publication number
- CN114518948A CN114518948A CN202210158765.2A CN202210158765A CN114518948A CN 114518948 A CN114518948 A CN 114518948A CN 202210158765 A CN202210158765 A CN 202210158765A CN 114518948 A CN114518948 A CN 114518948A
- Authority
- CN
- China
- Prior art keywords
- service
- micro
- rescheduling
- calling
- microservice
- 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 41
- 230000008447 perception Effects 0.000 title claims abstract description 22
- 230000004044 response Effects 0.000 claims abstract description 34
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 33
- 238000004458 analytical method Methods 0.000 claims abstract description 21
- 230000006870 function Effects 0.000 claims description 25
- 238000011156 evaluation Methods 0.000 claims description 14
- 238000013507 mapping Methods 0.000 claims description 12
- 239000011159 matrix material Substances 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 abstract description 7
- 230000007246 mechanism Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 12
- 238000011144 upstream manufacturing Methods 0.000 description 11
- 230000015556 catabolic process Effects 0.000 description 5
- 238000006731 degradation reaction Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008602 contraction Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
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
本发明公开了一种面向大规模微服务应用的动态感知重调度的方法及应用,该方法包括以下步骤:获取微服务请求的调用信息;通过动态拓扑感知算法对所述调用信息进行解析,并获取当前微服务的调用拓扑结构;根据所述调用拓扑结构判断当前微服务是否存在性能问题;若是,将当前微服务加入重调度任务队列进行重调度。该方法能够基于链路分析获取微服务应用的拓扑结构与实时运行状况,进而获取微服务应用执行请求响应的关键路径,自适应机制通过对关键路径的监测和分析,及时定位性能受到影响的微服务,并结合重调度算法对受影响微服务执行重调度,实现了微服务的自动调和,使微服务应用的性能始终趋于最佳状态。
Description
技术领域
本发明是关于微服务和云原生领域,特别是关于一种面向大规模微服务应用的动态感知重调度的方法及应用。
背景技术
微服务架构作为一种新的应用架构模式,其对高扩展性、高可用性的支持使之成为现代应用设计的一种趋势。微服务架构将复杂的应用程序划分为一组功能单一、松散耦合的独立服务,这些服务可以独立于其他服务或整个应用程序本身进行构建、部署、运行和维护,而不会损害应用程序的完整性。其中,每个功能独立、部署独立的服务都被称为一个微服务。与传统的单体架构相比,微服务架构极大地提高了应用程序的可用性、可移植性、可更新性和可伸缩性。
然而,微服务架构强调业务功能的组件化和服务化,业务系统被拆分成独立的功能组件,应用的功能由多组微服务协同完成,每个微服务不单可以向单一应用提供服务,更可以在多个应用之间进行复用。因此在微服务架构下,服务的数量级显著增加,且服务之间的调用关系也趋于复杂。另一方面,集群的使用者为了提高集群资源的利用率,会以多用户、多任务的形式使用集群资源,工作负载间的干扰往往会导致服务质量的降级,尤其是在在线离线任务混合部署环境下,大量的离线任务占用带宽,资源争用最终导致某些在线服务的服务质量发生降级,在微服务架构下,应用通过多个微服务的多级调用完成响应,单个微服务的服务质量降级也会对整体响应造成很大的影响。微服务应用的复杂拓扑结构难以通过人工方式进行梳理,性能受限微服务难以在庞大的微服务体系中被及时定位,是当前大规模微服务应用面临的一个重要问题。
目前微服务应用动态性能优化方面的研究大多集中在微服务自动扩缩容机制,这些研究基于微服务所具备的单独扩展能力,使用强化学习或性能预测模型建立资源扩缩容的规则,确定所需调整的资源数,以实现对受影响微服务的自动调整。但这部分方法在应对由主机性能降级、应用资源争用甚至是硬件故障导致的微服务质量下降上具有一定的局限性。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
本发明的目的在于提供一种面向大规模微服务应用的动态感知重调度的方法及应用,解决现有技术中对资源争用或单故障域引起微服务应用服务质量下降现象无法处理的问题。
为实现上述目的,本发明的实施例提供了一种面向大规模微服务应用的动态感知重调度的方法。
在本发明的一个或多个实施方式中,所述方法包括:获取所有微服务请求的调用信息;通过动态拓扑感知算法对所述调用信息进行解析,并获取当前微服务的拓扑结构;根据所述拓扑结构判断当前微服务是否存在性能问题;若是,将当前微服务加入重调度任务队列进行重调度。
在本发明的一个或多个实施方式中,所述通过动态拓扑感知算法对所述调用信息进行解析,并获取当前微服务的调用拓扑结构,包括:将所述调用信息按照请求ID划分为不同的请求组;遍历所述请求组中的调用信息,建立请求与微服务之间的映射表;根据所述映射表建立微服务依赖关系的邻接矩阵;以及将具有相同依赖关系的邻接矩阵进行合并,以获取当前微服务的拓扑结构。
在本发明的一个或多个实施方式中,所述方法还包括:在获取到新调用信息时,将所述新调用信息建立的邻接矩阵合并到原始邻接矩阵中,以获取所述新调用信息的微服务的拓扑结构。
在本发明的一个或多个实施方式中,所述方法还包括:根据所述映射表设置超时时间;以及在微服务依赖关系的添加时间超过所述超时时间时,将所述依赖关系从所述拓扑结构中删除。
在本发明的一个或多个实施方式中,根据所述调用拓扑结构判断当前微服务是否存在性能问题,包括:判断所述拓扑结构中根源节点微服务的下游服务是否为空;若是,输出关键路径;若否,将所述下游服务加入关键路径列表中,并按照所述下游服务的串行调用逆序执行关键路径感知算法。
在本发明的一个或多个实施方式中,根据所述调用拓扑结构判断当前微服务是否存在性能问题,还包括:根据所述关键路径的P99响应时延和平均响应时延计算所述微服务的性能评价函数;判断所述性能评价函数是否大于预设阈值;若是,将所述微服务加入微服务重调度任务队列。
在本发明的一个或多个实施方式中,根据所述调用拓扑结构判断当前微服务是否存在性能问题,还包括:在所述关键路径的平均响应时延增加超过两倍时,将所述微服务和对应的下游服务加入微服务重调度任务队列。
在本发明的另一个方面当中,提供了一种面向大规模微服务应用的动态感知重调度的装置,其包括获取模块、解析模块、判断模块和重调度模块。
获取模块,用于获取微服务请求的调用信息。
解析模块,用于通过动态拓扑感知算法对所述调用信息进行解析,并获取当前微服务的调用拓扑结构。
判断模块,用于根据所述调用拓扑结构判断当前微服务是否存在性能问题。
重调度模块,用于将当前微服务加入重调度任务队列进行重调度。
在本发明的一个或多个实施方式中,所述解析模块还用于:在获取到新调用信息时,将所述新调用信息建立的邻接矩阵合并到原始邻接矩阵中,以获取所述新调用信息的微服务的拓扑结构。
在本发明的一个或多个实施方式中,所述解析模块还用于:根据所述映射表设置超时时间;以及在微服务依赖关系的添加时间超过所述超时时间时,将所述依赖关系从所述拓扑结构中删除。
在本发明的一个或多个实施方式中,所述判断模块还用于:判断所述拓扑结构中根源节点微服务的下游服务是否为空;若是,输出关键路径;若否,将所述下游服务加入关键路径列表中,并按照所述下游服务的串行调用逆序执行关键路径感知算法。
在本发明的一个或多个实施方式中,所述判断模块还用于:根据所述关键路径的P99响应时延和平均响应时延计算所述微服务的性能评价函数;判断所述性能评价函数是否大于预设阈值;若是,将所述微服务加入微服务重调度任务队列。
在本发明的一个或多个实施方式中,所述判断模块还用于:在所述关键路径的平均响应时延增加超过两倍时,将所述微服务和对应的下游服务加入微服务重调度任务队列。
在本发明的另一个方面当中,提供了一种电子设备,用于本发明方法的实施,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的面向大规模微服务应用的动态感知重调度的方法。
在本发明的另一个方面当中,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述的面向大规模微服务应用的动态感知重调度的方法的步骤。
与现有技术相比,根据本发明实施方式的面向大规模微服务应用的动态感知重调度的方法及应用,其能够基于链路分析获取微服务应用的拓扑结构与实时运行状况,通过对微服务应用的拓扑结构与运行状况信息进行解析,获取微服务应用执行请求响应的关键路径,自适应机制通过对关键路径的监测和分析,及时定位性能受到影响的微服务,并结合重调度算法对受影响微服务执行重调度,实现了微服务的自动调和,使微服务应用的性能始终趋于最佳状态。
附图说明
图1是根据本发明一实施方式的面向大规模微服务应用的动态感知重调度的方法的总流程图;
图2是根据本发明一实施方式的面向大规模微服务应用的动态感知重调度的方法的动态拓扑感知算法流程图;
图3是根据本发明一实施方式的面向大规模微服务应用的动态感知重调度的方法的关键路径提取算法流程图;
图4是根据本发明一实施方式的面向大规模微服务应用的动态感知重调度的方法的动态性能感知流程图;
图5是根据本发明一实施方式的面向大规模微服务应用的动态感知重调度的装置的结构图;
图6是根据本发明一实施方式的面向大规模微服务应用的动态感知重调度的计算设备的硬件结构图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
以下结合附图,详细说明本发明各实施例提供的技术方案。
实施例1
如图1至图4所示,介绍本发明的一个实施例中面向大规模微服务应用的动态感知重调度的方法,该方法包括如下步骤。
在步骤S101中,获取微服务请求的调用信息。
利用分布式追踪系统对微服务应用中的调用进行监测,将上下游服务的一次“请求/响应”过程记为一次调用,每次调用根据请求到达微服务的时间以及将其响应发送回调用者的时间进行耗时计算,每个调用表示微服务完成了一个独立功能。
在一次服务请求中会包含若干个调用,因此所有调用中都包含相同的请求ID,各调用具有不同的调用ID。另外,由于微服务拓扑结构为有向无环图,因此在调用信息中还需要包含调用的方向,调用方向通过调用信息中上游调用的ID描述。可见,调用信息本身是一层层嵌套的关系,上游调用时长的一部分由下游调用组成。
动态感知系统通过调用信息,将一次请求涉及到的服务路径进行还原,并结合动态拓扑感知算法还原微服务的拓扑结构,基于关键路径提取算法对影响应用性能的关键路径进行定位,并进一步通过动态性能感知算法确定影响应用性能的关键节点,当出现性能下降或单故障域问题时,作出动态重调度响应,有效保障微服务应用的整体性能表现。
在步骤S102中,通过动态拓扑感知算法对调用信息进行解析,并获取当前微服务的调用拓扑结构。
如图2所示,基于大量请求产生的调用信息进行服务执行路径还原,定期地从数据库中拉取一定时间段内所有的调用信息,因此首先需要执行调用分类,分类阶段将调用信息按照请求ID进行分类,形成以请求划分的多个不同的分组;对每个分组执行请求分析。
请求分析阶段首先遍历所有的调用信息,建立调用与服务名之间的映射表,基于映射表进行二次遍历,在遍历中查询上游调用对应的服务名,以此获取微服务与微服务之间的依赖关系,通过请求分析,可以建立描述微服务依赖关系的邻接矩阵,对所有请求分析获取的邻接矩阵进行聚合,将具有相同的依赖关系的邻接矩阵进行合并,最终可以得到微服务应用的拓扑结构。
此外,本实施例在调用关系中附加上请求数据包的大小,在请求分析的聚合阶段,对调用信息中的数据包大小进行累加,通过对累加和的计算可以获取时间段内该调用上的平均负载量。
对整个流程进行分析,调用分类、请求分析阶段的时间复杂度为O(n),但由于调用信息的规模巨大,而调用关系本身具有一定的实效性,本实施例将调用分类与请求分析两阶段都以并行任务的形式进行处理。另外,为了减轻维护微服务应用拓扑结构的压力,降低每次调用分析的开销,协调器在完成拓扑结构初始化后,对新获取的调用信息,会按照“调用-响应”的关系以增量的形式添加到邻接矩阵中,而对于失效的依赖,则在微服务依赖关系属性中额外维护依赖关系的添加时间,通过设置超时时间,可以将失效的依赖关系从微服务拓扑中删除,而新出现调用依赖会刷新微服务依赖关系的时间属性。另外,为了避免拓扑动态性导致服务拓扑频繁变更,引起微服务系统的抖动,动态拓扑感知策略的响应机制以定时任务的形式执行。
在步骤S103中,根据调用拓扑结构判断当前微服务是否存在性能问题。
微服务应用动态性能感知包括关键路径解析与动态性能感知两个部分,其中关键路径解析用于定位影响微服务应用服务质量的主要服务路径,通过关键路径解析算法,可以有效地缩小性能感知的范围,实现更加高效的动态性能感知。
将调用关系分为三类:(1)串行调用模式:串行调用的特征是上游微服务对一个或多个的下游微服务以串行方式进行顺序调用,当排序靠前的微服务完成请求并返回后,后续的微服务才被调用,而只有当所有下游微服务完成请求并返回后,上游微服务才继续执行;(2)并行调用模式:并行调用的特征是上游微服务同时或在一段时间内分别调用多个下游微服务,下游微服务之间的执行和返回互不干扰,当所有下游微服务均执行完毕并返回后,上游微服务才完成执行并返回;(3)异步调用模式:异步调用的特征是当上游微服务在调用下游微服务时,可以不等待下游微服务完成执行并返回,上游微服务保持继续执行。
如图3所示,关键路径解析算法由拓扑结构的根节点(即最上游的服务)开始执行,通过检查拓扑结构,获得服务调用的下游服务,并对串行调用模式中最后一个返回的微服务,递归调用关键路径解析算法对其关键路径进行分析,当待搜索节点为空时,递归算法返回部分关键路径。当对主页时间线服务分析完成后,将会对与主页时间线服务具有串行执行关系的前一个微服务(即文本服务)进行同样的分析,获取该服务的部分关键路径。最终将所有的部分关键路径结合,即形成了完整的关键路径。
本实施方式将监测数据分为多个时间片进行记录分析,为了降低监测导致的开销,在每段时间片中,首先对关键路径的时延进行分析,算法针对两种场景进行了设计:首先是针对网络环境不稳定造成的丢包、请求失败、超时等现象,算法对关键路径的P99的响应时延(百分比排名99的时延数据)和P50的响应时延(平均响应时间)作比,获得性能评价函数,使用性能评价函数是为了服务质量进行量化表示,当性能评价函数大于设定的阈值时,即判断该微服务应用出现异常,性能下降。另一种场景是针对带宽受限下导致传输时延增加,或计算资源受限导致处理时延增加情况,算法对平均响应时延P50进行分析,当其整体增加超过两倍时,意味着大部分用户的请求均收到影响,即认为该服务受到了影响。对于受影响的服务,将该服务及其下游服务加入调度队列,通过重调度的方式为其分配新的工作节点,使整个应用的性能趋于正常。
如图4所示,为了降低监测开销,只对关键路径的时延进行分析,只有当关键路径出现异常时,才会对路径上的节点依次分析。这是由于关键路径的调用时延决定了整个应用的响应时延,当然在某些情况下还存在一种场景,即关键路径被取代:某条调用路径上的总响应时间超过了关键路径的总响应时间。对于这种场景,关键路径解析算法依然可以进行处理,这是因为此时应用总响应时延也发生了变化,同样可以触发算法的响应机制,将异常服务及下游服务加入调度队列。
另外,由于响应时延具有波动性,监测过程获取每个不同时间片的数据可能有较大差别,为了防止偶发性的延迟上升触发重调度的响应,导致微服务容器频繁重建,造成服务抖动,还加入了滑动平均算法对一定时间段内的请求时延进行计算,预测出时延变化的长期趋势。
滑动平均算法:delayt=β·delayt-1+(1-β)·delay。
其中,当前时间片周期获取的采样时延记为delay,而delayt则表示当前时间片周期的滑动平均时延,该时延的取值由采样算子和当前采样时延delay共同决定,β的存在是控制参与滑动平均计算的时间片的数目,在本实施例中β=0.9,即对过去10个性能评价函数进行取值。对服务质量的评价函数同样进行滑动平均取值,condition为当前时刻测得的性能评价函数,conditiont为之前获得的滑动平均值。在算法的最后部分,当判定某个微服务性能受到动态影响后,将动态响应策略通过调整节点部署位置,消除该微服务受到的影响。
在步骤S104中,将当前微服务加入重调度任务队列进行重调度。
对于定位的性能受限微服务,按照队列的形式进行重调度;对于性能不受影响的微服务,不进行重调度,以降低重调度过程对微服务应用产生的影响。
根据本发明实施方式的面向大规模微服务应用的动态感知重调度的方法及应用,其能够通过对微服务应用的拓扑结构进行动态分析,对微服务应用性能进行动态监测,并对性能下降或单故障域问题作出动态重调度响应,有效保障微服务应用的整体性能表现。
如图5所示,介绍根据本发明具体实施方式的面向大规模微服务应用的动态感知重调度的装置。
在本发明的实施方式中,面向大规模微服务应用的动态感知重调度的装置包括获取模块501、解析模块502、判断模块503和重调度模块504。
获取模块501,用于获取微服务请求的调用信息。
解析模块502,用于通过动态拓扑感知算法对调用信息进行解析,并获取当前微服务的调用拓扑结构。
判断模块503,用于根据调用拓扑结构判断当前微服务是否存在性能问题。
重调度模块504,用于将当前微服务加入重调度任务队列进行重调度。
解析模块502还用于:将调用信息按照请求ID划分为不同的请求组;遍历请求组中的调用信息,建立请求与微服务之间的映射表;根据映射表建立微服务依赖关系的邻接矩阵;以及将具有相同依赖关系的邻接矩阵进行合并,以获取当前微服务的拓扑结构。
解析模块502还用于:在获取到新调用信息时,将新调用信息建立的邻接矩阵合并到原始邻接矩阵中,以获取新调用信息的微服务的拓扑结构。
解析模块502还用于:根据映射表设置超时时间;以及在微服务依赖关系的添加时间超过超时时间时,将依赖关系从拓扑结构中删除。
判断模块503还用于:判断拓扑结构中根源节点微服务的下游服务是否为空;若是,输出关键路径;若否,将下游服务加入关键路径列表中,并按照下游服务的串行调用逆序执行关键路径感知算法。
判断模块503还用于:根据关键路径的P99响应时延和平均响应时延计算微服务的性能评价函数;判断性能评价函数是否大于预设阈值;若是,将微服务加入微服务重调度任务队列。
判断模块503还用于:在关键路径的平均响应时延增加超过两倍时,将微服务和对应的下游服务加入微服务重调度任务队列。
图6示出了根据本说明书的实施例的用于面向大规模微服务应用的动态感知重调度的计算设备60的硬件结构图。如图6所示,计算设备60可以包括至少一个处理器601、存储器602(例如非易失性存储器)、内存603和通信接口604,并且至少一个处理器601、存储器602、内存603和通信接口604经由总线605连接在一起。至少一个处理器601执行在存储器602中存储或编码的至少一个计算机可读指令。
应该理解,在存储器602中存储的计算机可执行指令当执行时使得至少一个处理器601进行本说明书的各个实施例中以上结合图1-6描述的各种操作和功能。
在本说明书的实施例中,计算设备60可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机等。
根据一个实施例,提供了一种比如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-6描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
根据本发明实施方式的面向大规模微服务应用的动态感知重调度的方法及应用,其能够基于链路分析获取微服务应用的拓扑结构与实时运行状况,通过对微服务应用的拓扑结构与运行状况信息进行解析,获取微服务应用执行请求响应的关键路径,自适应机制通过对关键路径的监测和分析,及时定位性能受到影响的微服务,并结合重调度算法对受影响微服务执行重调度,实现了微服务的自动调和,使微服务应用的性能始终趋于最佳状态。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
Claims (10)
1.一种面向大规模微服务应用的动态感知重调度的方法,其特征在于,所述方法包括:
获取所有微服务请求的调用信息;
通过动态拓扑感知算法对所述调用信息进行解析,并获取当前微服务的拓扑结构;
根据所述拓扑结构判断当前微服务是否存在性能问题;若是,
将当前微服务加入重调度任务队列进行重调度。
2.如权利要求1所述的面向大规模微服务应用的动态感知重调度的方法,其特征在于,所述通过动态拓扑感知算法对所述调用信息进行解析,并获取当前微服务的调用拓扑结构,包括:
将所述调用信息按照请求ID划分为不同的请求组;
遍历所述请求组中的调用信息,建立请求与微服务之间的映射表;
根据所述映射表建立微服务依赖关系的邻接矩阵;以及
将具有相同依赖关系的邻接矩阵进行合并,以获取当前微服务的拓扑结构。
3.如权利要求2所述的面向大规模微服务应用的动态感知重调度的方法,其特征在于,所述方法还包括:
在获取到新调用信息时,将所述新调用信息建立的邻接矩阵合并到原始邻接矩阵中,以获取所述新调用信息的微服务的拓扑结构。
4.如权利要求3所述的面向大规模微服务应用的动态感知重调度的方法,其特征在于,所述方法还包括:
根据所述映射表设置超时时间;以及
在微服务依赖关系的添加时间超过所述超时时间时,将所述依赖关系从所述拓扑结构中删除。
5.如权利要求4所述的面向大规模微服务应用的动态感知重调度的方法,其特征在于,根据所述调用拓扑结构判断当前微服务是否存在性能问题,包括:
判断所述拓扑结构中根源节点微服务的下游服务是否为空;若是,
输出关键路径;若否,
将所述下游服务加入关键路径列表中,并按照所述下游服务的串行调用逆序执行关键路径感知算法。
6.如权利要求5所述的面向大规模微服务应用的动态感知重调度的方法,其特征在于,根据所述调用拓扑结构判断当前微服务是否存在性能问题,还包括:
根据所述关键路径的P99(所有请求中百分比排名99的时延数据)响应时延和平均响应时延计算所述微服务的性能评价函数;
判断所述性能评价函数是否大于预设阈值;若是,
将所述微服务加入微服务重调度任务队列。
7.如权利要求5所述的面向大规模微服务应用的动态感知重调度的方法,其特征在于,根据所述调用拓扑结构判断当前微服务是否存在性能问题,还包括:
在所述关键路径的平均响应时延增加超过两倍时,将所述微服务和对应的下游服务加入微服务重调度任务队列。
8.一种面向大规模微服务应用的动态感知重调度的装置,其特征在于,所述装置包括:
获取模块,用于获取微服务请求的调用信息;
解析模块,用于通过动态拓扑感知算法对所述调用信息进行解析,并获取当前微服务的调用拓扑结构;
判断模块,用于根据所述调用拓扑结构判断当前微服务是否存在性能问题;
重调度模块,用于将当前微服务加入重调度任务队列进行重调度。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1至7中任一项所述的面向大规模微服务应用的动态感知重调度的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的面向大规模微服务应用的动态感知重调度的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210158765.2A CN114518948A (zh) | 2022-02-21 | 2022-02-21 | 面向大规模微服务应用的动态感知重调度的方法及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210158765.2A CN114518948A (zh) | 2022-02-21 | 2022-02-21 | 面向大规模微服务应用的动态感知重调度的方法及应用 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114518948A true CN114518948A (zh) | 2022-05-20 |
Family
ID=81598741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210158765.2A Pending CN114518948A (zh) | 2022-02-21 | 2022-02-21 | 面向大规模微服务应用的动态感知重调度的方法及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114518948A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114625500A (zh) * | 2022-02-23 | 2022-06-14 | 南京航空航天大学 | 云环境下拓扑感知的微服务应用调度的方法及应用 |
CN115033477A (zh) * | 2022-06-08 | 2022-09-09 | 山东省计算中心(国家超级计算济南中心) | 一种面向大规模微服务的性能异常主动检测和处理方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8824274B1 (en) * | 2011-12-29 | 2014-09-02 | Juniper Networks, Inc. | Scheduled network layer programming within a multi-topology computer network |
CN109947567A (zh) * | 2019-03-14 | 2019-06-28 | 深圳先进技术研究院 | 一种多智能体强化学习调度方法、系统及电子设备 |
CN110502328A (zh) * | 2019-08-28 | 2019-11-26 | 嘉兴学院 | 一种海上边缘计算可信协同任务迁移方法 |
CN111580945A (zh) * | 2020-04-21 | 2020-08-25 | 智业互联(厦门)健康科技有限公司 | 微服务任务协调调度方法及系统 |
CN112363814A (zh) * | 2020-11-20 | 2021-02-12 | 中国平安财产保险股份有限公司 | 任务调度方法、装置、计算机设备及存储介质 |
CN113055218A (zh) * | 2019-12-29 | 2021-06-29 | 中国移动通信集团浙江有限公司 | Nfv网络的冗余性评价方法、装置及计算设备 |
CN113434283A (zh) * | 2021-08-26 | 2021-09-24 | 广州三七互娱科技有限公司 | 服务调度方法及装置、服务器、计算机可读存储介质 |
CN113761286A (zh) * | 2020-06-01 | 2021-12-07 | 杭州海康威视数字技术股份有限公司 | 一种知识图谱的图嵌入方法、装置及电子设备 |
CN114625500A (zh) * | 2022-02-23 | 2022-06-14 | 南京航空航天大学 | 云环境下拓扑感知的微服务应用调度的方法及应用 |
-
2022
- 2022-02-21 CN CN202210158765.2A patent/CN114518948A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8824274B1 (en) * | 2011-12-29 | 2014-09-02 | Juniper Networks, Inc. | Scheduled network layer programming within a multi-topology computer network |
CN109947567A (zh) * | 2019-03-14 | 2019-06-28 | 深圳先进技术研究院 | 一种多智能体强化学习调度方法、系统及电子设备 |
CN110502328A (zh) * | 2019-08-28 | 2019-11-26 | 嘉兴学院 | 一种海上边缘计算可信协同任务迁移方法 |
CN113055218A (zh) * | 2019-12-29 | 2021-06-29 | 中国移动通信集团浙江有限公司 | Nfv网络的冗余性评价方法、装置及计算设备 |
CN111580945A (zh) * | 2020-04-21 | 2020-08-25 | 智业互联(厦门)健康科技有限公司 | 微服务任务协调调度方法及系统 |
CN113761286A (zh) * | 2020-06-01 | 2021-12-07 | 杭州海康威视数字技术股份有限公司 | 一种知识图谱的图嵌入方法、装置及电子设备 |
CN112363814A (zh) * | 2020-11-20 | 2021-02-12 | 中国平安财产保险股份有限公司 | 任务调度方法、装置、计算机设备及存储介质 |
CN113434283A (zh) * | 2021-08-26 | 2021-09-24 | 广州三七互娱科技有限公司 | 服务调度方法及装置、服务器、计算机可读存储介质 |
CN114625500A (zh) * | 2022-02-23 | 2022-06-14 | 南京航空航天大学 | 云环境下拓扑感知的微服务应用调度的方法及应用 |
Non-Patent Citations (3)
Title |
---|
JIANWEI YIN: ""CloudScout: A Non-Intrusive Approach to Service Dependency Discovery"", 《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》, vol. 28, no. 5, 20 October 2016 (2016-10-20), pages 1271 - 1284, XP011645236, DOI: 10.1109/TPDS.2016.2619715 * |
XIN LI: ""Topology-Aware Scheduling Framework for Microservice Applications in Cloud"", 《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》, vol. 34, no. 5, 23 January 2023 (2023-01-23), pages 1635 - 1649, XP093129314, DOI: 10.1109/TPDS.2023.3238751 * |
郝水侠: ""相似驱动的细粒度并行任务重构算法"", 《计算机科学》, vol. 40, no. 09, 15 September 2013 (2013-09-15), pages 44 - 50 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114625500A (zh) * | 2022-02-23 | 2022-06-14 | 南京航空航天大学 | 云环境下拓扑感知的微服务应用调度的方法及应用 |
CN115033477A (zh) * | 2022-06-08 | 2022-09-09 | 山东省计算中心(国家超级计算济南中心) | 一种面向大规模微服务的性能异常主动检测和处理方法及系统 |
CN115033477B (zh) * | 2022-06-08 | 2023-06-27 | 山东省计算中心(国家超级计算济南中心) | 一种面向大规模微服务的性能异常主动检测和处理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101600129B1 (ko) | 애플리케이션 효율 엔진 | |
Manolache et al. | Schedulability analysis of applications with stochastic task execution times | |
CN114518948A (zh) | 面向大规模微服务应用的动态感知重调度的方法及应用 | |
Di et al. | Google hostload prediction based on Bayesian model with optimized feature combination | |
US20160321331A1 (en) | Device and method | |
Khoshkbarforoushha et al. | Elasticity management of streaming data analytics flows on clouds | |
CN110569252B (zh) | 一种数据处理系统及方法 | |
Diaz et al. | Pessimism in the stochastic analysis of real-time systems: Concept and applications | |
Petrov et al. | Adaptive performance model for dynamic scaling Apache Spark Streaming | |
Tavakoli et al. | Client-side straggler-aware I/O scheduler for object-based parallel file systems | |
Martin et al. | Scalable and elastic realtime click stream analysis using streammine3g | |
KR20180072295A (ko) | 분산 인 메모리 환경에서 실시간 스트림 데이터 처리를 위한 동적 잡 스케쥴링 시스템 및 방법 | |
Wang et al. | Design and implementation of an analytical framework for interference aware job scheduling on apache spark platform | |
Qiu et al. | Enhancing reliability and response times via replication in computing clusters | |
Choi et al. | An enhanced data-locality-aware task scheduling algorithm for hadoop applications | |
Thamsen et al. | Ellis: Dynamically scaling distributed dataflows to meet runtime targets | |
Lopez et al. | Analysis of dynamic heuristics for workflow scheduling on grid systems | |
US8966094B2 (en) | Managing session data of a composite service session in a communication network | |
Zhu et al. | Fluid approximation of closed queueing networks with discriminatory processor sharing | |
Jaiman et al. | TailX: Scheduling heterogeneous multiget queries to improve tail latencies in key-value stores | |
CN105740249B (zh) | 一种大数据作业并行调度过程中的处理方法及其系统 | |
US9824130B1 (en) | Optimizing synchronization of enterprise content management systems | |
Atar et al. | Replicate to the shortest queues | |
Debnath et al. | Collaborative offloading for distributed mobile-cloud apps | |
Koch et al. | SMiPE: estimating the progress of recurring iterative distributed dataflows |
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 |