CN115705239A - 一种业务优化方法、装置、设备及存储介质 - Google Patents
一种业务优化方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115705239A CN115705239A CN202110912223.5A CN202110912223A CN115705239A CN 115705239 A CN115705239 A CN 115705239A CN 202110912223 A CN202110912223 A CN 202110912223A CN 115705239 A CN115705239 A CN 115705239A
- Authority
- CN
- China
- Prior art keywords
- link
- service
- chain
- node
- call
- 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
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种业务优化方法、装置、设备及存储介质,涉及计算机技术领域,用于保证链路的合理性。该方法包括:可以根据设定的时间间隔,从链路模板库中,获取多条昨日模板链路;进而可以根据所述多条昨日模板链路中表示的各个服务的调用过程,构建与所述多条昨日模板链路相同足迹标识的多条调用链;从而对所述多条调用链中的各条调用链中任意两个相邻节点之间进行重复请求判定,获取所述各条调用链各自对应的重复请求判定结果;进而根据所述各条调用链各自对应的重复请求判定结果,来确定出所述各条调用链是否合理。
Description
技术领域
本申请涉及计算机技术领域,提供一种业务优化方法、装置、设备及存储介质。
背景技术
随着互联网的发展以及微服务的流行,使得办理业务所产生的数据量呈现指数增长的趋势,因此,管理办理业务时所记录的业务链路应运而生,在具体对业务链路进行管理时,主要针对服务与服务之间、服务与中间件之间的依赖关系、业务链路的合理性以及业务链路的可用性等方面进行管理。
目前,针对业务链路的管理,基本上均是采用各种探针进行数据采集,进而收集关键指标,同时搭配数据,以实现对应用程序性能管理和故障管理的系统化解决方案。但是,应用性能管理(Application Performance Management,APM)系统主要对程序内部的执行过程指标和服务之间链路调用情况进行监控。而zabbix和Premetheus等监控工具则主要对服务器的硬件指标进行监控。但是上述的管理系统或者监控工作所考虑的内容均不是很全面,因此,所记录的业务链路可能会出现链路不合理的情况。
因此,如何保证链路的合理性是一个重要亟待解决的问题。
发明内容
本申请实施例提供一种业务优化方法、装置、设备及存储介质,用于保证链路的合理性。
一方面,提供一种业务优化方法,所述方法包括:
根据设定的时间间隔,从链路模板库中,获取多条模板链路;其中,所述模板链路为昨日以数据表结构的形式存入链路模板库的链路,且用于表示在昨日办理的各个业务中各自所对应请求的各个服务的调用过程;
根据所述多条模板链路中表示的各个服务的调用过程,构建与所述多条模板链路相同足迹标识的多条调用链;其中,所述调用链为树状结构,且用于指示所述调用链中各个服务之间层级关系;
对所述多条调用链中的各条调用链中任一节点进行重复请求判定,获取所述各条调用链各自对应的重复请求判定结果;其中,所述重复请求判定结果用于指示所述调用链是否发生链路扩大现象;
根据所述各条调用链各自对应的重复请求判定结果,确定所述各条调用链是否合理。
一方面,提供一种业务优化装置,所述装置包括:
第一获取单元,用于根据设定的时间间隔,从链路模板库中,获取多条模板链路;其中,所述模板链路为昨日以数据表结构的形式存入链路模板库的链路,且用于表示在昨日办理的各个业务中各自所对应请求的各个服务的调用过程;
构建单元,根据所述多条模板链路中表示的各个服务的调用过程,构建与所述多条模板链路相同足迹标识的多条调用链;其中,所述调用链为树状结构,且用于指示所述调用链中各个服务之间层级关系;
第二获取单元,用于对所述多条调用链中的各条调用链中任一节点进行重复请求判定,获取所述各条调用链各自对应的重复请求判定结果;其中,所述重复请求判定结果用于指示所述调用链是否发生链路扩大现象;
确定单元,用于根据所述各条调用链各自对应的重复请求判定结果,确定所述各条调用链是否合理。
可选的,所述第二获取单元,具体用于:
针对所述多条调用链中一条调用链循环迭代执行如下操作,直至所述一条调用链的终止节点被迭代:
针对所述一条调用链,在所述一条调用链的节点N为基准节点时,确定所述节点N是否存在多次相邻重复请求;其中,N≥2,且N为整数;
在确定存在时,将所述节点N的服务进行重复请求标记,并将所述节点N+1确定为所述基准节点;
根据所述一条调用链各个节点的重复请求标记,获取所述一条调用链对应的重复请求判定结果。
可选的,所述装置还包括告警单元;
所述第二获取单元,还用于对所述多条调用链中的各条调用链中任意两个节点之间进行服务回流判定,获取所述各条调用链各自对应的回流判定结果;其中,所述回流判定结果用于指示所述调用链是否发生链路回流现象;
所述确定单元,还用于根据所述各条调用链各自对应的回流判定结果,确定所述各条调用链是否合理;
所述告警单元,用于在确定所述各条调用链为不合理链路时,根据预设的合理性告警规则,向告警平台发送第一警告信息;其中,所述第一所述警告信息用于提示工作人员所述一条调用链存在不合理情况,需要进行优化。
可选的,所述第二获取单元,具体还用于:
针对所述多条调用链中一条调用链循环迭代执行如下操作,直至所述一条调用链的终止节点被迭代:
针对所述一条调用链,在所述一条调用链存在节点M,且所述节点M为基准节点时,确定在所述一条调用链中除所述节点M以外的所有剩余节点各自对应的服务中,是否存在与所述节点M的服务相同的服务;其中,M≥2,且M为整数;
在确定存在时,将所述节点M的服务,以及所述所有剩余节点各自对应的服务中与所述节点M的服务相同的服务进行回流标记,并将所述节点M+1确定为所述基准节点;
根据所述一条调用链各个节点的回流标记,获取所述一条调用链对应的回流判定结果。
可选的,所述确定单元,还用于遍历所述各条调用链各自对应的各个节点,确定所述各条调用链各自对应的各个节点的服务;
所述第二获取单元,还用于对所述各条调用链各自对应的各个节点的服务进行分类统计处理,获取所述各条调用链各自对应的分类统计结果;其中,所述分类统计结果用于指示所述调用链中各个服务的访问次数;
所述确定单元,还用于在企业管理人员查找依赖服务时,根据所述各条调用链各自对应的分类统计结果中所指示的各个服务的访问次数,确定所述各条调用链的依赖服务;其中,所述依赖服务用于表示用户办理业务时所偏好的服务;
所述确定单元,还用于根据所述各条调用链的依赖服务,确定所述各条调用链是否进行调整。
可选的,所述确定单元,具体用于:
针对所述多条调用链中一条调用链,根据所述一条调用链对应的重复请求判定结果中所指示的所述调用链是否发生链路扩大现象的相关内容,确定所述一条调用链是否为扩大链路;其中,所述扩大链路为传输的数据量会增大的链路;
在确定为扩大链路时,确定所述一条调用链为不合理链路。
可选的,所述装置还包括确定单元,所述确定单元用于:
针对多个业务中的一个业务,确定所述一个业务在链路模板库中对应的模板链路与在链路审核库中的待审核链路是否相同;其中,所述待审核链路为未经过企业管理人员审核的链路;
在确定不相同之后,若再次记录到所述待审核链路,则确定所述链路模板库中是否存在与所述待审核链路相同的模板链路;
在确定不存在时,将所述待审核链路加入黑名单中,并当下一次请求所述待审核链路时,退回请求所述待审核链路的请求;其中,所述黑名单中所包括的各条待审核链路为不能被使用的链路。
可选的,所述装置还包括链路限制单元,所述链路限制单元用于:
针对一条链路,确定所述一条链路对应的链路入口查询率是否超过预设的链路入口查询率阈值;其中,所述链路入口查询率用于指示所述一条链路在单位时间内的响应请求次数;
在确定超过所述预设的链路入口查询率阈值时,对所述一条链路的链路访问接口进行限制。
可选的,所述告警单元,还用于:
当接收到用户订阅链路的请求,并根据所述请求确定用户订阅的链路为异常链路时,确定所述异常链路的异常等级和异常类型;
根据所述异常链路的异常等级和异常类型,按照异常告警规则向工作人员发送第二警告信息;所述第二警告信息用于提示工作人员所述用户订阅的链路为异常链路;所述异常告警规则指示异常链路的异常等级和异常类型,所述异常类型包括业务异常和系统异常。
一方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方面所述的方法的步骤。
一方面,提供一种计算机存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述方面所述的方法的步骤。
本申请实施例中,可以根据设定的时间间隔,从链路流水库中,获取多条昨日流水链路,进而,根据多条昨日流水链路中表示的各个服务的调用过程,构建与多条昨日流水链路相同足迹标识的多条调用链,并对这多条调用链中的各条调用链中任意两个相邻节点之间进行重复请求判定,以获取重复请求判定结果,进而,便可以根据各条调用链各自对应的重复请求判定结果,来确定各条调用链是否合理。因此,在本申请实施例中,由于将数据表结构的昨日模板链路转换为了树状结构的调用链,指明了链路中各个服务之间的层级关系,使得对链路进行分析变得更加方便,且由于对链路的各个节点进行了重复请求判定,即对链路中是否存在多次请求相同服务的情况进行了判定,从而进一步判定出该链路是否发生链路扩大现象,即判定该链路是否合理,且在不合理时,可以向工作人员进行告警,从而为链路具有合理性提供保障。
此外,在申请实施例中,还可以对多条调用链中的各条调用链中任意两个节点之间进行服务回流判定,进而根据获取的回流判定结果,来确定各条调用链是否发生链路回流现象,进而确定链路是否合理,且在不合理时,可以向工作人员进行告警,以进一步为链路具有合理性提供了保障。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种应用场景示意图;
图2为本申请实施例提供的业务优化架构的示意图;
图3为本申请实施例提供的链路放大的一种示意图;
图4为本申请实施例提供的业务优化方法的一种流程示意图;
图5为本申请实施例提供的确定链路放大的一种流程示意图;
图6为本申请实施例提供的链路回流的一种示意图;
图7为本申请实施例提供的业务优化方法的另一种流程示意图;
图8为本申请实施例提供的确定链路回流的一种流程示意图;
图9为本申请实施例提供的业务优化方法的另一种流程示意图;
图10为本申请实施例提供的对节点服务进行分类统计的一种示意图;
图11为本申请实施例提供的保护待审核链路的一种流程示意图;
图12为本申请实施例提供的业务优化装置的一种结构示意图;
图13为本申请实施例提供的计算机设备的一种结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
目前,针对业务链路的管理,业界出现了很多应用性能管理(ApplicationPerformance Management,APM),例如,由国内开源的分布式系统的应用程序性能监控工具Skywalking,由韩国团队开源的运用了字节码增强技术的Pinpoint,由Twitter公司开发的Zipkin以及由国内美团开发的CAT,这些监控工具大都是参考Google的Dapper进行实现的。
上述应用性能管理系统,基本上均是采用各种探针进行数据采集,进而收集关键指标,同时搭配数据,以实现对应用程序性能管理和故障管理的系统化解决方案。但是,APM系统主要对程序内部的执行过程指标和服务之间链路调用情况进行监控。而zabbix和Premetheus等监控工具则主要对服务器的硬件指标进行监控。但是上述的管理系统或者监控工作所考虑的内容均不是很全面,因此,所记录的业务链路可能会出现链路不合理的情况。
基于此,本申请实施例中,提供一种业务优化方法,在该方法中,可以根据设定的时间间隔,从链路流水库中,获取多条昨日流水链路,进而,根据多条昨日流水链路中表示的各个服务的调用过程,构建与多条昨日流水链路相同足迹标识的多条调用链,并对这多条调用链中的各条调用链中任意两个相邻节点之间进行重复请求判定,以获取重复请求判定结果,进而,便可以根据各条调用链各自对应的重复请求判定结果,来确定各条调用链是否合理。因此,在本申请实施例中,由于将数据表结构的昨日模板链路转换为了树状结构的调用链,指明了链路中各个服务之间的层级关系,使得对链路进行分析变得更加方便,且由于对链路的各个节点进行了重复请求判定,即对链路中是否存在多次请求相同服务的情况进行了判定,从而进一步判定出该链路是否发生链路扩大现象,即判定该链路是否合理,且在不合理时,可以向工作人员进行告警,从而为链路具有合理性提供保障。
此外,在申请实施例中,还可以对多条调用链中的各条调用链中任意两个节点之间进行服务回流判定,进而根据获取的回流判定结果,来确定各条调用链是否发生链路回流现象,进而确定链路是否合理,且在不合理时,可以向工作人员进行告警,以进一步为链路具有合理性提供了保障。
在介绍完本申请实施例的设计思想之后,下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
如图1所示,为本申请实施例提供的一种应用场景示意图,其中,该业务优化的应用场景可以包括终端设备10和服务器11。
终端设备10可以为手机、笔记本电脑或者平板电脑(PAD)等。终端设备10中可以打开网约车平台提供的对网约车发送打车服务的网约车页面,网约车平台可以通过应用程序(application,APP)、公众号、小程序或者网站提供上述网约车页面。
服务器11可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。
在实际使用中,服务器11可以存储终端设备10每一次在进行网约车请求时所产生的链路,并对所存储的链路进行链路扩大分析与链路回流分析,进而,确定该链路是否合理,并在不合适时,可以通过短信或者警示灯闪烁等形式通知工作人员对相应的不合理的链路进行处理。
如图2所示,为本申请实施例提供的业务优化架构的示意图。
该业务优化架构可以包括链路模板库1101、链路流水库1102、链路对比库1103、链路安全库1104、链路版本库1105、链路分析库1106、链路对比器1107、链路版本控制器1108、链路安全器1109、链路异常状态分析器1110、链路异常分析器1111、Kafka分布式消息系统1112、链路订阅器1113、应用程序编程接口(Application Programming Interface,API)管控平台1114、告警平台1115以及监控平台1116等。其中,上述的各个部分可全部部署于上述服务器11中,本申请实施例对此不做限制。
(1)链路模板库1101
链路模板库1101可以用于存储各条模板链路。具体的,链路模板库1101可以为关系型数据库管理系统MYSQL。
(2)链路流水库1102
链路流水库1102可以用于存储每天记录的各条流水链路。具体的,链路流水库1102可以为开源分布式NoSQL数据库系统Cassandra。
(3)链路对比库1103
链路对比库1103可以包含有链路配比库11031、链路放大库11032、链路回流库11033。
(4)链路对比器1107
链路对比器1107可以用于对各条链路进行解析对比处理,其中,该解析对比处理可以为链路配比处理、链路扩大处理或者链路回流处理。
具体的,在链路对比器1107对各条链路进行链路配比处理时,可以对各条链路各自包含的各个节点的服务进行分类统计,并将分类统计结果存储至链路配比库11031中,以向工作人员进行展示或者查看,进而判定各条链路中初始服务依赖所有服务的访问次数。
在链路对比器1107对各条链路进行链路扩大处理时,可以通过判定各条链路中任一节点是否存在相邻重复请求,来确定各条链路是否存在链路放大现象。并在确定存在相邻重复请求时,对该任一节点的服务进行重复请求打标,并将链路放大结果存储至链路放大库11032中,以向工作人员进行展示或者查看,进而判定各条链路中是否存在重复请求相同服务的情况,从而判定各条链路是否为合理链路。
在链路对比器1107对各条链路进行链路回流处理时,可以对各条链路中的各个节点对应的服务均进行记录,并判断任意2个节点之间是否存在相同服务,且在任意2个节点之间存在相同服务时,则会对相同服务该进行回流打标,并将链路回流结果存储至链路回流库11033中,以向工作人员进行展示或者查看,进而判定各条链路中是否存在链路回流的现象,从而判定各条链路是否为合理链路。
(5)链路版本控制器1108
链路版本控制器1108可以用于对链路版本库1105中的各条链路的版本进行识别,并在确定某一业务的链路结构发生变化时,可以通知链路安全器1109来限制链路的通行,并将链路版本控制器1108确定的结果存储至链路分析库1106中。当然该链路版本控制器1108还可以对各条链路的运行环境进行识别,以确定链路的版本是否与运行环境相匹配。
(6)链路安全器1109
链路安全器1109可以用于通过计算各条链路依赖的服务、链路入口查询率((Query Per Second,QPS)达到多少,各条链路的下游服务是否能支撑,来确定是否需要API管控平台1114对各条链路限制通行,进而来保护各条链路,以达到链路具有可用性的目的。此外,未被限制通行的链路会被存储至链路安全库1104。
(7)链路异常状态分析器1110
链路异常状态分析器1110可以用于对用户订阅的链路进行异常状态分析,以确定出链路的异常类型,即具体是属于业务异常,还是系统异常等。且可以将链路的异常状态分析结果存储至链路分析库1106中。
(8)链路异常分析器1111
链路异常分析器1111可以用于对用户订阅的链路进行异常分析,以确定出链路的异常等级。且可以将链路的异常等级分析结果存储至链路分析库1106中。
(9)Kafka分布式消息系统1112
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
(10)链路订阅器1113
链路订阅器1113可以用于对Kafka分布式消息系统1112中的各条链路的数据进行订阅。
在一种可能的实施方式中,如图2所示,在实际应用时,可以通过脚手架来采集各项数据,且在每次请求业务办理时,会相应记录下一条具有唯一足迹标识(TraceId)的链路结构,该链路结构可以异步发送至Kafka分布式消息系统1112中,以供用户进行订阅。因此,记录下链路结构,并发送至Kafka分布式消息系统1112中的一方可以作为链路的生产者,例如,向用户提供链路结构的企业等。
进而,当存在用户通过链路订阅器1113从Kafka分布式消息系统1112中订阅链路数据时,会将订阅的链路数据进行处理,并存储至链路流水库1102中,并通过本地缓存和分布式缓存来记录链路模板,并将链路模板存储至链路模板库1101中,以达到对模板链路进行持久化的目的。
且还可以通过监控平台1116实时对用户订阅的各条链路进行监控,并在链路发生异常时,可以通过显示面板对异常链路的异常信息进行可视化,以向工作人员进行展示,同时还通过告警平台1115,实时将异常信息发送给企业管理人员,以使企业管理人员能够及时对异常链路进行处理。
当然,本申请实施例提供的方法并不限用于图1所示的应用场景中,还可以用于其他可能的应用场景,本申请实施例并不进行限制。对于图1所示的应用场景的各个装置所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。下面,将结合附图对本申请实施例的结构进行介绍。
如图3所示,为本申请实施例提供的链路放大的一种示意图,在正常进行服务请求时,记录的链路为A(请求1次服务1)-B(请求1次服务2)-C(请求1次服务3)-D(请求1次服务4),而在链路发生流量放大时,记录的链路为A(请求1次服务1)-B(请求3次服务2)-C(请求1次服务2)-D(请求1次服务2),可见,在链路发生流量放大时,在节点B处对服务2进行了3次相邻的访问请求,即服务2被多次重复请求,但是,在一般情况下,对用户来说,只需要收到一次访问服务2的回复即可,也就是说,只需要发送一次访问服务2的请求即可满足用户需求。因此,节点B对服务2发送的3次访问请求中,有2次访问请求对用户来说是多余的,因而,会造成资源浪费的现象,增大了流量(传输的数据量),导致数据传输效率较低,从而影响用户对业务使用的满意度,所以,当链路中某服务被多次重复请求时,这样的链路是不合理的。
如图4所示,为本申请实施例提供的业务优化方法的一种流程示意图,该方法可以通过图1中的服务器11来执行,该方法的流程介绍如下。
步骤401:根据设定的时间间隔,从链路模板库中,获取多条昨日模板链路。
在本申请实施例中,链路模板库中存储有每一天用户进行业务办理时所对应记录的流水,即,对应记录的模板链路,而昨日模板链路为昨日以数据表结构的形式存入链路模板库的模板链路,可以用于表示在昨日办理的各个业务中各自所对应请求的各个服务的调用过程。在该数据表结构中记录有服务之间的调用信息,例如,访问时间、链路接口、访问结果等等。
在具体使用时,可以通过定时器来设定的时间间隔,该时间间隔可以设置为1天,即,每天都从链路模板库中,获取多条昨日模板链路来进行处理,该处理时间可以定在晚上,这样可以避免因其他工作需要在相同的服务器上运行,而带来的处理效率低的问题。
步骤402:根据多条昨日模板链路中表示的各个服务的调用过程,构建与多条昨日模板链路相同足迹标识的多条调用链。
在本申请实施例中,调用链可以为树状结构,且可以用于指示调用链中各个服务之间层级关系。
在实际应用时,由于可能会出现多个用户通过同一个应用程序接口来办理相同的业务,例如,调用过程均是“由A调用节点B”,即,均是由节点A发送调用请求,以调用节点B,使得,这多个用户在进行服务调用时,所记录的流水链路存在相同的足迹标识,例如TraceID。
因此,为了减少工作量,以及更便于对链路进行分析,可以将昨日模板链路转换为树结构的形式来进行分析,即,构建与昨日模板链路相同足迹标识的调用链,该调用链可以使用中线来标注层级之间的关系,例如,A-B-C-D表示服务层级关系,即节点A调用节点B,节点B调用节点C,而节点C则调用节点D。
步骤403:对多条调用链中的各条调用链中任一节点进行重复请求判定,获取各条调用链各自对应的重复请求判定结果。
在本申请实施例中,重复请求判定结果可以用于指示调用链是否发生链路扩大现象。
由于在同一服务被多次相邻重复请求时,会增大流量,即发生了链路扩大现象,从而会导致数据传输效率较低,进而影响用户对业务使用的满意度,因此,若是链路出现某一服务被多次请求的情况,那么这条链路是不合理的。
在本申请实施例中,可以通过定义map,来定义链路中各节点的访问顺序,即仅能按照从前往后的顺序进行访问,而不能反向回溯,进而可以采用迭代器通过递归的方式来对各个节点的服务进行判定,且由于在每一个节点上所采用的判定方式相同,因此,这里以调用链1的节点N作为基准节点为例进行介绍,如图5所示,为本申请实施例提供的确定链路放大的一种流程示意图,该方法可以通过图1中的服务器11来执行,具体流程介绍如下。
步骤4031:确定节点N是否存在多次相邻重复请求。
步骤4032:在确定相同时,将节点N的服务进行重复请求标记。
在本申请实施例中,在确定节点N存在多次相邻重复请求时,就表示会对节点N的服务进行多次访问,那么此时可以对该节点N的服务进行重复请求标记,以方便管理人员了解链路1具体在什么节点发生了相邻重复请求现象。
而在确定不相同时,则表明并没有对节点N的服务进行重复请求,那么在确定不相同时,可以直接进行步骤4033所示的内容。
步骤4033:将节点N+1作为基准节点。
步骤4034:确定节点N+1是否为终止节点。
在确定不为终止节点时,则可以回到步骤4031继续执行“重复请求”的确定过程。而在确定为终止节点时,则表明已经递归完调用链1中的所有节点,因此,在确定为终止节点时,即,已经在对调用链1的终止节点(最后一个节点)进行递归了,此时,当该终止节点也被递归完成之后,则可以结束该调用链1的递归过程。
进而,在结束该调用链1的递归过程之后,根据该调用链1各个节点的重复请求标记,便可获取该调用链1对应的重复请求判定结果。
步骤404:根据各条调用链各自对应的重复请求判定结果,确定各条调用链是否合理。
在本申请实施例中,在确定出各条调用链各自对应的重复请求判定结果之后,可以将该重复请求判定结果以及被标记的服务存入链路放大库中,当企业管理人员需要具体查看该调用链到底在什么节点发生了链路放大现象时,便可以从该链路放大库中获取该调用链相应的被标记的服务,来快速定位发生链路放大现象的节点。此外,还可以根据该重复请求判定结果所指示的该调用链是否发生链路扩大现象的相关内容,来确定该调用链是否为扩大链路了。
具体的,在确定该调用链为扩大链路时,可以确定该调用链为不合理链路,否则,则为合理链路。进而,为了使企业管理人员能够及时对不合理链路做出应对措施,在确定出不合理链路时,可以根据预设的不合理告警规则,向告警平台发送第一警告信息,以提示企业管理人员该条调用链存在不合理情况,需要进行优化。
如图6所示,为本申请实施例提供的链路回流的一种示意图,在正常进行服务请求时,记录的链路为A-B-C,即“节点A调用节点B,节点B调用节点C”,而在链路发生回流时,记录的链路为A-B-C-A,即“节点A调用节点B,节点B调用节点C,节点C调用节点A”,使得处理器会一直执行该循环链路,而无法结束该链路所对应的业务,进而,影响用户的体验感。因此,发生回流的链路也是不合理的链路,其中,“节点C调用节点A”为不规则的调用,其所对应调用服务为不规则服务。
因此,在另一种可能的实施方式中,可以对链路回流进行处理,具体处理过程如图7所示,为本申请实施例提供的业务优化方法的另一种流程示意图,该方法可以通过图1中的服务器11来执行,该方法的流程介绍如下。
步骤701:根据设定的时间间隔,从链路模板库中,获取多条昨日模板链路。
在本申请实施例中,可以通过定时器来设定的时间间隔,该时间间隔可以设置为1天,即,每天都从链路模板库中,获取多条昨日模板链路来进行处理,该处理时间可以定在晚上,这样可以避免因其他工作需要在相同的服务器上运行,而带来的处理效率低的问题。
步骤702:根据多条昨日模板链路中表示的各个服务的调用过程,构建与多条昨日模板链路相同足迹标识的多条调用链。
在本申请实施例中,为了减少工作量,以及更便于对链路进行分析,可以将昨日模板链路转换为树结构的形式来进行分析,即,构建与昨日模板链路相同足迹标识的调用链,该调用链可以使用中线来标注层级之间的关系,例如,A-B-C-D表示服务层级关系,即节点A调用节点B,节点B调用节点C,而节点C则调用节点D。
步骤703:对多条调用链中的各条调用链中任意两个节点之间进行服务回流判定,获取各条调用链各自对应的回流判定结果。
在本申请实施例中,回流判定结果可以用于指示调用链是否发生链路回流现象。
由于链路发生回流现象会使得处理器一直执行该循环链路,而无法结束该链路所对应的业务,从而影响用户的体验感,因此,回流链路是一种不合理的链路。
在本申请实施例中,可以通过定义双向map,来定义链路中各节点的访问顺序,并替换表示层级关系的key和value的值,在每一节点上,可以顺序向后访问,也可以逆序向前访问,进而,可以采用迭代器通过双层迭代(即,同时向前迭代和向后迭代)的方式来对各个节点的服务进行判定,即,针对某一节点来说,不仅会校验在该节点之前的所有节点的服务,是否与该节点的服务相同,还会校验在该节点之后的所有节点的服务,是否与该节点的服务相同。此外,由于在进行链路回流判定时,是依次对各条调用链进行判定的,即每一条调用链的判定方式是相同,且由于在每一个节点上所采用的判定方式也是相同,因此,这里以调用链1的节点N作为基准节点为例进行介绍,如图8所示,为本申请实施例提供的确定链路回流的一种流程示意图,该方法可以通过图1中的服务器11来执行,具体流程介绍如下。
步骤7031:确定在调用链1中除节点M以外的所有剩余节点各自对应的服务中,是否存在与节点M的服务相同的服务。
步骤7032:在确定存在时,将节点M的服务,以及所有剩余节点各自对应的服务中与节点M的服务相同的服务进行回流标记。
在本申请实施例中,在确定所有剩余节点各自对应的服务中,存在与节点N的服务相同的服务,那么就表明,调用链1中发生链路回流现象,那么此时可以将节点M的服务,以及所有剩余节点各自对应的服务中与节点M的服务相同的服务进行回流标记,以方便企业管理人员了解调用链1中具体在什么节点发生了链路回流现象。
而在确定不存在时,则表明节点M处没有发生链路回流现象,因此,在确定不存在时,可以直接进行步骤7033所示的内容。
步骤7033:将节点M+1作为基准节点。
步骤7034:确定是否存在节点M+1。
在确定存在时,则可以回到步骤7031继续执行“链路回流”的确定过程。而在确定不存在时,即,调用链1的终止节点(最后一个节点)也已经被递归了,此时,则表明已经递归完调用链1中的所有节点,因此,在确定不存在时,可以结束该调用链1的双向递归过程。
进而,在结束该调用链1的双向递归过程之后,根据该调用链1各个节点的回流标记,便可获取该调用链1对应的回流判定结果。
步骤704:根据各条调用链各自对应的回流判定结果,确定各条调用链是否合理。
在本申请实施例中,与根据重复请求判定结果确定调用链是否合理的过程类似,在确定出各条调用链各自对应的回流判定结果之后,可以将该回流判定结果以及被标记的服务存入链路回流库中,当企业管理人员需要具体查看该调用链到底在什么节点发生了链路回流现象时,便可以从该链路回流库中获取该条调用链相应的被标记的服务,来快速定位发生链路回流现象的节点。此外,还可以根据该回流判定结果所指示的该调用链是否发生链路回流现象的相关内容,来确定该调用链是否为回流链路。
具体的,在确定该调用链为回流链路时,可以确定该调用链为不合理链路,否则,则为合理链路。进而,为了使企业管理人员能够及时对不合理链路做出应对措施,在确定出不合理链路时,可以根据预设的不合理告警规则,向告警平台发送第一警告信息,以提示工作人员该调用链存在不合理情况,需要进行优化。
此外,为了能够向用户提供更好的服务,以提升用户对企业产品的满意度,企业还需要实时的确定出用户的喜好服务,进而通过对这些喜好服务进行分析,以生产出更能满足用户喜好的产品。
因此,在另一种可能的实施方式中,可以通过对各条调用链中各个节点的服务进行分类统计,来确定出用户在进行某项业务办理时,更喜好哪些服务。具体确定过程如图9所示,为本申请实施例提供的业务优化方法的另一种流程示意图,该方法可以通过图1中的服务器11来执行,该方法的流程介绍如下。
步骤901:根据设定的时间间隔,从链路模板库中,获取多条昨日模板链路。
在本申请实施例中,可以通过定时器来设定的时间间隔,该时间间隔可以设置为1天,即,每天都从链路模板库中,获取多条昨日模板链路来进行处理,该处理时间可以定在晚上,这样可以避免因其他工作需要在相同的服务器上运行,而带来的处理效率低的问题。
步骤902:根据多条昨日模板链路中表示的各个服务的调用过程,构建与多条昨日模板链路相同足迹标识的多条调用链。
在本申请实施例中,为了减少工作量,以及更便于对链路进行分析,可以将昨日模板链路转换为树结构的形式来进行分析,即,构建与昨日模板链路相同足迹标识的调用链,该调用链可以使用中线来标注层级之间的关系,例如,A-B-C-D表示服务层级关系,即节点A调用节点B,节点B调用节点C,而节点C则调用节点D。
步骤903:遍历各条调用链各自对应的各个节点,确定各条调用链各自对应的各个节点的服务。
在本申请实施中,同样以调用链1为例,假设该调用链1各个节点之间的服务层级关系为A-B-C-D,那么针对该调用链1,可以对该调用链1的各个节点进行遍历,以确定出该调用链1中各个节点对应的服务,即节点A、B、C和D上所对应的服务,如图10所示,为本申请实施例提供的对节点服务进行分类统计的一种示意图,节点A请求了1次服务1,节点B请求了1次服务2,节点C请求了1次服务3,节点D请求了1次服务2。
步骤904:对各条调用链各自对应的各个节点的服务进行分类统计处理,获取各条调用链各自对应的分类统计结果。
在本申请实施例中,分类统计结果可以用于指示调用链中各个服务的访问次数。
在对节点A、B、C和D遍历之后,可以对节点A、B、C和D上所对应的服务进行分类统计处理,以获取该调用链1的分类统计结果,如图10所示,分类统计结果为,服务1共被访问过1次,具体是通过节点A进行访问的,服务2共被访问过2次,具体是通过节点B和D进行访问的,服务3共被访问过1次,具体是通过节点C进行访问的。
步骤905:在企业管理人员查找依赖服务时,根据各条调用链各自对应的分类统计结果中指示各个服务的访问次数,确定各条调用链的依赖服务。
在本申请实施例中,依赖服务可以用于表示用户办理业务时所偏好的服务。
具体的,在获取了各条调用链各自对应的分类统计结果之后,可以将该分类统计结果存入链路配比库中,当企业管理人员需要针对某一业务进行用户喜好服务进行分析时,即企业管理人员需要查找依赖服务时,可以从该链路配比库中获取该业务对应的调用链的分类统计结果,进而根据该分类统计结果中所指示的各个服务的访问次数,快速确定出用户针对该业务的依赖服务,以及该依赖服务位于调用链的什么节点。
步骤906:根据各条调用链的依赖服务,确定各条调用链是否进行调整。
进而在对确定的各条调用链的依赖服务进行分析,发现当前调用链的依赖服务能够侧面反映用户对当前业务可能有不满倾向时,例如,依赖服务为“刷新网页”这一服务,即,当前业务可能不能够满足用户对网络连接的需求,那么此时,可能就需要对企业产品进行改进,从而对该业务的调用链进行调整,以生产出更能满足用户喜好的产品,从而向用户提供更好的服务,以提升用户对企业产品的满意度。
在一种可能的实施方式中,在业务内容发生变更时,该业务所对应记录的链路也会发生变化,例如,对于网约车过程中的“用户登录验证”业务来说,为了保障用户账户安全,在进行登录时,除了以往输入密码进行验证,可以在输入密码验证之后,增加一个短信验证过程,以进一步保障用户账户安全,在这种情况下,针对“用户登录验证”业务来说,该业务所对应的链路便会发生变化,但是,由于变化后的链路未经过审核,因此,不知道该变化后的链路是否可用,那么,为了保障用户对产品使用的满意度,此时可以通过链路安全器来对未经过审核的变化后的链路的通行进行限制,进而达到对业务变更时所记录的待审核链路进行保护,以免该待审核链路被消除的现象发生。
具体保护过程如图11所示,为本申请实施例提供的保护待审核链路的一种流程示意图,该方法可以通过图1中的服务器11来执行,该方法的流程介绍如下。
步骤1101:针对多个业务中的一个业务,确定一个业务在链路模板库中对应的模板链路与在链路审核库中的待审核链路是否相同。
在本申请实施例中,待审核链路为未经过企业管理人员审核的链路。
在实际使用时,当一个业务因为变更而使得对应链路的链路结构发生变化时,该业务变更后第一次记录的待审核链路会被通过,即会被直接执行,但是由于该待审核链路并未进行审核,即并不能确保该待审核链路是可用的,因此,会将该待审核链路存入链路审核库中,以等待企业管理人员对其进行审核。
进而,为了保护业务变更时所记录的待审核链路,因此,在本申请实施例中,可以采用链路版本控制器去确定变更的业务在链路模板库中对应的模板链路与在链路审核库中的待审核链路是否相同,以便在不相同时,对待审核链路做出相应的保护措施。
步骤1102:在确定不相同之后,若再次记录到待审核链路,则确定链路模板库中是否存在与待审核链路相同的模板链路。
在本申请实施例中,在采用链路版本控制器确定变更的业务,在链路模板库中对应的模板链路与在链路审核库中的待审核链路不相同之后,可以通过链路安全器来对待审核链路进行通行限制,即限制待审核链路被使用。
具体的,当再次接收到该变更业务的请求时,即,再次记录到待审核链路时,可以根据顺序拼接所有的服务,并采用信息摘要算法(Message-Digest Algorithm,MD5)来确保信息传输完整一致。
进而,再采用链路安全器去确定链路模板库中是否存在,与该待审核链路相同的模板链路,进而,确定出企业作人员在此次请求之前是否对待审核链路进行了审核,从而确定出是否需要对该待审核链路进行保护。
步骤1103:在确定不存在时,将待审核链路加入黑名单中,并在下一次请求待审核链路时,退回请求待审核链路的请求。
在本申请实施例中,黑名单中所包括的各条待审核链路为不能被使用的链路。
在确定链路模板库中不存在与待审核链路相同的模板链路时,则表明该待审核链路并未被企业管理人员所审核,因此,为了保护该待审核链路,可以将该待审核链路加入黑名单中,使得在下一次请求该待审核链路时,会退回请求待审核链路的请求,以达到保护待审核链路的目的。且,在下一次请求该待审核链路时,也可以向API管控平台发送链路更新请求,以使企业管理人员对待审核链路进行审核,进而,将该待审核链路加入链路通行库中,其中,该链路通行库中所包含的链路均为可以通行并使用的链路。当然,在下一次请求该待审核链路时,还可以通过告警平台,向企业管理人员进行示警,以通知企业管理人员需要对链路进行更正,或者发送变更申请。从而表现出从业务安全的角度进行考虑,通过对链路进行保护,可以有效提升链路各个节点服务的可用性,解决链路版本不兼容的问题,使得链路可管理,链路业务具有一致性。
此外,在一种可能的实施方式中,链路安全器不仅可以通过退回请求来对链路进行保护,还可以通过设置链路入口查询率(Query Per Second,QPS)阈值来进行动态变化保护。其中,链路入口查询率可以用于指示链路在单位时间内的响应请求次数。
例如,以调用链1为例,在对调用链1进行请求时,链路安全器会确定调用链1对应的链路入口查询率是否超过预设的链路入口查询率阈值,来确定是否需要对该调用链1的链路访问接口进行限制,进而达到限制调用链1的使用的目的。其中,链路入口查询率阈值可以通过服务能够承载的最大QPS的峰值、中央处理器(Central Processing Unit,CPU)的运行效率以及内存等参数来共同进行确定。
具体的,在确定超过预设的链路入口查询率阈值时,可以限制调用链1的使用,即可以通过API管控平台来过滤流量进入,从而保证调用链1的服务可用性。进而,降低了应用程序接口被刷风险,为了业务扩容和缩容提供有效参考依据。当然,在未超过链路入口查询率阈值时,可以不对该调用链1的链路访问接口进行限制。
在一种可能的实施方式中,由于在通常情况下,用户订阅的链路可能会发生异常,因此,为了使企业管理人员能够及时对异常链路作出应对措施,在本申请实施例中,当接收到用户订阅链路的请求,且根据该请求确定出用户订阅的链路为异常链路时,可以根据预设的链路异常等级和异常类型,例如,异常等级可以划分为1-5个等级,异常类型可以包括业务异常和系统异常,即因为业务发生异常而导致的异常链路,和因系统异常而导致的异常链路,来确定出当前异常链路的异常等级和异常类型。
进而,在确定出当前异常链路的异常等级和异常类型之后,可以按照异常告警规则来向工作人员发送第二警告信息;第二警告信息用于提示工作人员用户订阅的链路为异常链路,且在第二警告信息中,还可以指示出当前异常链路的异常等级和异常类型。从而,可以使企业管理人员能够及时对异常链路作出应对措施,以进一步保护业务的正常办理。
在一种可能的实施方式中,由于Kafka的目的是对消费者生成的所有动作流数据进行处理,因此,在本申请实施例中,还可以采用RabbitMQ来替换Kafka,以达到对数据进行处理的目的。
此外,由于关系型数据库管理系统MYSQL是用来存储模板链路,以使对模板链路进行持久化的,因此,在本申请实施例中,还可以采用另一款关系数据库管理系统Oracle来替换该MYSQL,以达到储存链路模板,使链路持久化存储的目的。
同样的,由于开源分布式NoSQL数据库系统Cassandra的目的是存储每天记录的各条流水链路,因此,在本申请实施例中,还可以采用分布式的面向列的开源数据库HBase,或者采用基于restful web接口的分布式全文检索引擎ES(Elasticsearch)来替换Cassandra,以达到存储流水链路的目的。
当然,作为缓存信息的数据结构服务器Redis(Remote Dictionary Server,),也可以采用分布式缓存系统Memcached或传统数据库进行替换。
综上所述,在本申请实施例中,由于将数据表结构的昨日模板链路转换为了树状结构的调用链,指明了链路中各个服务之间的层级关系,使得对链路进行分析变得更加方便,且由于对链路的各个节点进行了重复请求判定,即对链路中是否存在多次请求相同服务的情况进行了判定,从而进一步判定出该链路是否发生链路扩大现象,即判定该链路是否合理,且在不合理时,可以向工作人员进行告警,从而为链路具有合理性提供保障。此外,还可以对多条调用链中的各条调用链中任意两个节点之间进行服务回流判定,进而根据获取的回流判定结果,来确定各条调用链是否发生链路回流现象,进而确定链路是否合理,且在不合理时,可以向工作人员进行告警,以进一步为链路具有合理性提供了保障。且通过保护机制来保护链路使用,且对控制链路版本以及链路异常的暴露,可快速进行定位,并形成闭环,及时通知企业管理人员进行应对,以形成一套真正为业务链路进行保护的自动化管理机制。
如图12所示,基于同一发明构思,本申请实施例提供一种业务优化装置120,该装置包括:
第一获取单元1201,用于根据设定的时间间隔,从链路模板库中,获取多条模板链路;其中,模板链路为昨日以数据表结构的形式存入链路模板库的链路,且用于表示在昨日办理的各个业务中各自所对应请求的各个服务的调用过程;
构建单元1202,根据所述多条模板链路中表示的各个服务的调用过程,构建与所述多条模板链路相同足迹标识的多条调用链;其中,所述调用链为树状结构,且用于指示调用链中各个服务之间层级关系;
第二获取单元1203,用于对多条调用链中的各条调用链中任一节点进行重复请求判定,获取各条调用链各自对应的重复请求判定结果;其中,重复请求判定结果用于指示调用链是否发生链路扩大现象;
确定单元1204,用于根据各条调用链各自对应的重复请求判定结果,确定各条调用链是否合理。
可选的,第二获取单元1203,具体用于:
针对多条调用链中一条调用链循环迭代执行如下操作,直至一条调用链的终止节点被迭代:
针对一条调用链,在一条调用链的节点N为基准节点时,确定节点N是否存在多次相邻重复请求;其中,N≥2,且N为整数;
在确定存在时,将节点N的服务进行重复请求标记,并将节点N+1确定为基准节点;
根据一条调用链各个节点的重复请求标记,获取一条调用链对应的重复请求判定结果。
可选的,该装置还包括告警单元1205;
第二获取单元1203,还用于对多条调用链中的各条调用链中任意两个节点之间进行服务回流判定,获取各条调用链各自对应的回流判定结果;其中,回流判定结果用于指示调用链是否发生链路回流现象;
确定单元1204,还用于根据各条调用链各自对应的回流判定结果,确定各条调用链是否合理;
告警单元1205,用于在确定各条调用链为不合理链路时,根据预设的合理性告警规则,向告警平台发送第一警告信息;其中,第一所述警告信息用于提示工作人员一条调用链存在不合理情况,需要进行优化。
可选的,第二获取单元1203,具体还用于:
针对多条调用链中一条调用链循环迭代执行如下操作,直至一条调用链的终止节点被迭代:
针对一条调用链,在一条调用链存在节点M,且节点M为基准节点时,确定在一条调用链中除节点M以外的所有剩余节点各自对应的服务中,是否存在与节点M的服务相同的服务;其中,M≥2,且M为整数;
在确定存在时,将节点M的服务,以及所有剩余节点各自对应的服务中与节点M的服务相同的服务进行回流标记,并将节点M+1确定为基准节点;
根据一条调用链各个节点的回流标记,获取一条调用链对应的回流判定结果。
可选的,确定单元1204,还用于遍历各条调用链各自对应的各个节点,确定各条调用链各自对应的各个节点的服务;
第二获取单元1203,还用于对各条调用链各自对应的各个节点的服务进行分类统计处理,获取各条调用链各自对应的分类统计结果;其中,分类统计结果用于指示调用链中各个服务的访问次数;
确定单元1204,还用于在企业管理人员查找依赖服务时,根据各条调用链各自对应的分类统计结果中所指示的各个服务的访问次数,确定各条调用链的依赖服务;其中,依赖服务用于表示用户办理业务时所偏好的服务;
所述确定单元1204,还用于根据各条调用链的依赖服务,确定各条调用链是否进行调整。
可选的,确定单元1204,具体用于:
针对多条调用链中一条调用链,根据一条调用链对应的重复请求判定结果中所指示的调用链是否发生链路扩大现象的相关内容,确定一条调用链是否为扩大链路;其中,扩大链路为传输的数据量会增大的链路;
在确定为扩大链路时,确定一条调用链为不合理链路。
可选的,该确定单元1204,还用于:
针对多个业务中的一个业务,确定一个业务在链路模板库中对应的模板链路与在链路审核库中的待审核链路是否相同;其中,待审核链路为未经过企业管理人员审核的链路;
在确定不相同之后,若再次记录到待审核链路,则确定链路模板库中是否存在与待审核链路相同的模板链路;
在确定不存在时,将待审核链路加入黑名单中,并当下一次请求待审核链路时,退回请求待审核链路的请求;其中,黑名单中所包括的各条待审核链路为不能被使用的链路。
可选的,装置还包括链路限制单元1206,链路限制单元1206用于:
针对一条链路,确定一条链路对应的链路入口查询率是否超过预设的链路入口查询率阈值;其中,链路入口查询率用于指示一条链路在单位时间内的响应请求次数;
在确定超过预设的链路入口查询率阈值时,对一条链路的链路访问接口进行限制。
可选的,告警单元1205,还用于:
当接收到用户订阅链路的请求,并根据请求确定用户订阅的链路为异常链路时,确定异常链路的异常等级和异常类型;
根据异常链路的异常等级和异常类型,按照异常告警规则向工作人员发送第二警告信息;第二警告信息用于提示工作人员用户订阅的链路为异常链路;异常告警规则指示异常链路的异常等级和异常类型,异常类型包括业务异常和系统异常。
该装置可以用于执行图3~图11所示的实施例中所述的方法,因此,对于该装置的各功能模块所能够实现的功能等可参考图3~图11所示的实施例的描述,不多赘述。需要说明的是,图12中的虚线框示出的功能单元为该装置的非必要功能单元。
请参见图13,基于同一技术构思,本申请实施例还提供了一种计算机设备130,可以包括存储器1301和处理器1302。
所述存储器1301,用于存储处理器1302执行的计算机程序。存储器1301可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据计算机设备的使用所创建的数据等。处理器1302,可以是一个中央处理单元(central processing unit,CPU),或者为数字处理单元等等。本申请实施例中不限定上述存储器1301和处理器1302之间的具体连接介质。本申请实施例在图13中以存储器1301和处理器1302之间通过总线1303连接,总线1303在图13中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线1303可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1301可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1301也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器1301是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1301可以是上述存储器的组合。
处理器1302,用于调用所述存储器1301中存储的计算机程序时执行如图3~图11所示的实施例中设备所执行的方法。
在一些可能的实施方式中,本申请提供的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的方法中的步骤,例如,所述计算机设备可以执行如图3~图11所示的实施例中所述的方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (14)
1.一种业务优化方法,其特征在于,所述方法包括:
根据设定的时间间隔,从链路模板库中,获取多条昨日模板链路;其中,所述昨日模板链路为昨日以数据表结构的形式存入链路模板库的模板链路,且用于表示在昨日办理的各个业务中各自所对应请求的各个服务的调用过程;
根据所述多条昨日模板链路中表示的各个服务的调用过程,构建与所述多条昨日模板链路相同足迹标识的多条调用链;其中,所述调用链为树状结构,且用于指示所述调用链中各个服务之间层级关系;
对所述多条调用链中的各条调用链中任一节点进行重复请求判定,获取所述各条调用链各自对应的重复请求判定结果;其中,所述重复请求判定结果用于指示所述调用链是否发生链路扩大现象;
根据所述各条调用链各自对应的重复请求判定结果,确定所述各条调用链是否合理。
2.如权利要求1所述的方法,其特征在于,对所述多条调用链中的各条调用链中任一节点进行重复请求判定,获取所述各条调用链各自对应的重复请求判定结果,包括:
针对所述多条调用链中一条调用链循环迭代执行如下操作,直至所述一条调用链的终止节点被迭代:
针对所述一条调用链,在所述一条调用链的节点N为基准节点时,确定所述节点N是否存在多次相邻重复请求;其中,N≥2,且N为整数;
在确定存在时,将所述节点N的服务进行重复请求标记,并将所述节点N+1确定为所述基准节点;
根据所述一条调用链各个节点的重复请求标记,获取所述一条调用链对应的重复请求判定结果。
3.如权利要求1所述的方法,其特征在于,在根据所述多条昨日模板链路中表示的各个服务的调用过程,构建与所述多条昨日模板链路相同足迹标识的多条调用链之后,所述方法还包括:
对所述多条调用链中的各条调用链中任意两个节点之间进行服务回流判定,获取所述各条调用链各自对应的回流判定结果;其中,所述回流判定结果用于指示所述调用链是否发生链路回流现象;
根据所述各条调用链各自对应的回流判定结果,确定所述各条调用链是否合理;
在确定所述各条调用链为不合理链路时,根据预设的合理性告警规则,向告警平台发送第一警告信息;其中,所述第一所述警告信息用于提示工作人员所述一条调用链存在不合理情况,需要进行优化。
4.如权利要求3所述的方法,其特征在于,对所述多条调用链中的各条调用链中任意两个节点之间进行服务回流判定,获取所述各条调用链各自对应的回流判定结果,包括:
针对所述多条调用链中一条调用链循环迭代执行如下操作,直至所述一条调用链的终止节点被迭代:
针对所述一条调用链,在所述一条调用链存在节点M,且所述节点M为基准节点时,确定在所述一条调用链中除所述节点M以外的所有剩余节点各自对应的服务中,是否存在与所述节点M的服务相同的服务;其中,M≥2,且M为整数;
在确定存在时,将所述节点M的服务,以及所述所有剩余节点各自对应的服务中与所述节点M的服务相同的服务进行回流标记,并将所述节点M+1确定为所述基准节点;
根据所述一条调用链各个节点的回流标记,获取所述一条调用链对应的回流判定结果。
5.如权利要求1所述的方法,其特征在于,在根据所述多条昨日模板链路中表示的各个服务的调用过程,构建与所述多条昨日模板链路相同足迹标识的多条调用链之后,所述方法还包括:
遍历所述各条调用链各自对应的各个节点,确定所述各条调用链各自对应的各个节点的服务;
对所述各条调用链各自对应的各个节点的服务进行分类统计处理,获取所述各条调用链各自对应的分类统计结果;其中,所述分类统计结果用于指示所述调用链中各个服务的访问次数;
在企业管理人员查找依赖服务时,根据所述各条调用链各自对应的分类统计结果中所述指示各个服务的访问次数,确定所述各条调用链的依赖服务;其中,所述依赖服务用于表示用户办理业务时所偏好的服务;
根据所述各条调用链的依赖服务,确定所述各条调用链是否进行调整。
6.如权利要求1所述的方法,其特征在于,根据所述各条调用链各自对应的重复请求判定结果,确定所述各条调用链是否合理,包括:
针对所述多条调用链中一条调用链,根据所述一条调用链对应的重复请求判定结果中所指示的所述调用链是否发生链路扩大现象的相关内容,确定所述一条调用链是否为扩大链路;其中,所述扩大链路为传输的数据量会增大的链路;
在确定为扩大链路时,确定所述一条调用链为不合理链路。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
针对多个业务中的一个业务,确定所述一个业务在链路模板库中对应的模板链路与在链路审核库中的待审核链路是否相同;其中,所述待审核链路为未经过企业管理人员审核的链路;
在确定不相同之后,若再次记录到所述待审核链路,则确定所述链路模板库中是否存在与所述待审核链路相同的模板链路;
在确定不存在时,将所述待审核链路加入黑名单中,并当下一次请求所述待审核链路时,退回请求所述待审核链路的请求;其中,所述黑名单中所包括的各条待审核链路为不能被使用的链路。
8.如权利要求1所述的方法,其特征在于,所述方法还包括:
针对一条链路,确定所述一条链路对应的链路入口查询率是否超过预设的链路入口查询率阈值;其中,所述链路入口查询率用于指示所述一条链路在单位时间内的响应请求次数;
在确定超过所述预设的链路入口查询率阈值时,对所述一条链路的链路访问接口进行限制。
9.如权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到用户订阅链路的请求,并根据所述请求确定用户订阅的链路为异常链路时,确定所述异常链路的异常等级和异常类型,所述异常类型包括业务异常和系统异常;
根据所述异常链路的异常等级和异常类型,按照异常告警规则向工作人员发送第二警告信息;所述第二警告信息用于提示工作人员所述用户订阅的链路为异常链路;所述异常告警规则指示异常链路的异常等级和异常类型。
10.一种业务优化装置,其特征在于,所述装置包括:
第一获取单元,用于根据设定的时间间隔,从链路模板库中,获取多条模板链路;其中,所述模板链路为昨日以数据表结构的形式存入链路模板库的链路,且用于表示在昨日办理的各个业务中各自所对应请求的各个服务的调用过程;
构建单元,用于根据所述多条模板链路中表示的各个服务的调用过程,构建与所述多条模板链路相同足迹标识的多条调用链;其中,所述调用链为树状结构,且用于指示所述调用链中各个服务之间层级关系;
第二获取单元,用于对所述多条调用链中的各条调用链中任一节点进行重复请求判定,获取所述各条调用链各自对应的重复请求判定结果;其中,所述重复请求判定结果用于指示所述调用链是否发生链路扩大现象;
确定单元,用于根据所述各条调用链各自对应的重复请求判定结果,确定所述各条调用链是否合理。
11.如权利要求10所述的装置,其特征在于,所述装置还包括第一告警单元;
所述第二获取单元,还用于对所述多条调用链中的各条调用链中任意两个节点之间进行服务回流判定,获取所述各条调用链各自对应的回流判定结果;其中,所述回流判定结果用于指示所述调用链是否发生链路回流现象;
所述确定单元,还用于根据所述各条调用链各自对应的回流判定结果,确定所述各条调用链是否合理;
所述第一告警单元,用于在确定所述各条调用链为不合理链路时,根据预设的合理性告警规则,向告警平台发送第一警告信息;其中,所述第一所述警告信息用于提示工作人员所述一条调用链存在不合理情况,需要进行优化。
12.如权利要求10所述的装置,其特征在于,
所述确定单元,还用于遍历所述各条调用链各自对应的各个节点,确定所述各条调用链各自对应的各个节点的服务;
所述第二获取单元,还用于对所述各条调用链各自对应的各个节点的服务进行分类统计处理,获取所述各条调用链各自对应的分类统计结果;其中,所述分类统计结果用于指示所述调用链中各个服务的访问次数;
所述确定单元,还用于在企业管理人员查找依赖服务时,根据所述各条调用链各自对应的分类统计结果中所指示的各个服务的访问次数,确定所述各条调用链的依赖服务;其中,所述依赖服务用于表示用户办理业务时所偏好的服务;
所述确定单元,还用于根据所述各条调用链的依赖服务,确定所述各条调用链是否进行调整。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现权利要求1至9任一项所述方法的步骤。
14.一种计算机存储介质,其上存储有计算机程序指令,其特征在于,
该计算机程序指令被处理器执行时实现权利要求1至9任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110912223.5A CN115705239A (zh) | 2021-08-10 | 2021-08-10 | 一种业务优化方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110912223.5A CN115705239A (zh) | 2021-08-10 | 2021-08-10 | 一种业务优化方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115705239A true CN115705239A (zh) | 2023-02-17 |
Family
ID=85179464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110912223.5A Pending CN115705239A (zh) | 2021-08-10 | 2021-08-10 | 一种业务优化方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115705239A (zh) |
-
2021
- 2021-08-10 CN CN202110912223.5A patent/CN115705239A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11868373B2 (en) | Method and apparatus for monitoring an in-memory computer system | |
US20100153431A1 (en) | Alert triggered statistics collections | |
US9813450B1 (en) | Metadata-based verification of artifact quality policy compliance | |
US20070250525A1 (en) | Model-Based Event Processing | |
US20120331390A1 (en) | User interface for managing questions and answers across multiple social media data sources | |
US20210092160A1 (en) | Data set creation with crowd-based reinforcement | |
CN109960635B (zh) | 实时计算平台的监控和报警方法、系统、设备及存储介质 | |
US20220094600A1 (en) | Managed remediation of non-compliant resources | |
CN111881011A (zh) | 日志管理方法、平台、服务器及存储介质 | |
US20230040635A1 (en) | Graph-based impact analysis of misconfigured or compromised cloud resources | |
US20130036222A1 (en) | Inheritable dimensions in a service model | |
CN113760677A (zh) | 异常链路分析方法、装置、设备及存储介质 | |
US8296262B1 (en) | Systems and methods for real-time online monitoring of computing devices | |
JP5240709B2 (ja) | シンプトンを評価するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム | |
US11210352B2 (en) | Automatic check of search configuration changes | |
US9891968B2 (en) | Analyzing data sources for inactive data | |
Bellini et al. | Smart cloud engine and solution based on knowledge base | |
US10248508B1 (en) | Distributed data validation service | |
CN109918189B (zh) | 一种资源管理方法及相关设备 | |
CN111324583A (zh) | 一种业务日志的分类方法及装置 | |
CN115705239A (zh) | 一种业务优化方法、装置、设备及存储介质 | |
US11200138B1 (en) | Policy-based request tracing using a computer | |
CN115248815A (zh) | 预测查询处理 | |
CN114281549A (zh) | 数据的处理方法及装置 | |
CN113421109A (zh) | 一种业务核对方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |