CN115248737A - 一种面向切面编程的接口调用耗时计算方法及装置 - Google Patents

一种面向切面编程的接口调用耗时计算方法及装置 Download PDF

Info

Publication number
CN115248737A
CN115248737A CN202210921028.3A CN202210921028A CN115248737A CN 115248737 A CN115248737 A CN 115248737A CN 202210921028 A CN202210921028 A CN 202210921028A CN 115248737 A CN115248737 A CN 115248737A
Authority
CN
China
Prior art keywords
aop
micro
micro service
plug
time
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
CN202210921028.3A
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.)
Bank of China Ltd
Original Assignee
Bank of China 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 Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN202210921028.3A priority Critical patent/CN115248737A/zh
Publication of CN115248737A publication Critical patent/CN115248737A/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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. 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

本文涉及软件开发领域,尤其涉及一种面向切面编程的接口调用耗时计算方法及装置。该方法包括:根据预先确定的待计算接口调用耗时的微服务程序,配置AOP插件包名,所述AOP插件包名包括微服务程序的部署路径,其中,所述微服务程序包括多个微服务方法;根据所述AOP插件包名,将AOP插件切入到所述微服务程序中微服务方法的切点;当所述微服务方法被访问时,所述AOP插件由所述切点激活,并由所述AOP插件打印日志;根据所述日志中记录的微服务方法被调用的时长,确定微服务程序的接口耗时信息。本发明通过全局AOP的原理,通过提供AOP插件、微服务程序引入插件,通过相关配置即可实现无侵入式统计接口耗时的功能。

Description

一种面向切面编程的接口调用耗时计算方法及装置
技术领域
本文涉及数据处理领域,尤其是一种面向切面编程的接口调用耗时计算方法及装置。
背景技术
现阶段微服务接口的内部,因存在数据加工、处理或者调用其他系统接口的逻辑,会产生一定的耗时,耗时过长的请求会导致使用微服务的各个调用方调用超时。例如H5页面发起请求,通过网关系统调用微服务接口,若微服务接口的耗时超过网关系统的默认耗时,则网关系统会直接返回报错,进而引发生产风险。
目前的接口耗时计算往往需要在接口内部进行日志打印和计算,侵入性较强,冗余代码多不容易维护。本发明旨在通过全局AOP的原理,实现通过相关配置即可统计接口耗时的功能。
针对目前技术中接口耗时计算存在的侵入性较强、不容易维护的问题,需要一种面向切面编程的接口调用耗时计算方法及装置。
发明内容
为解决上述现有技术的问题,本文实施例提供了一种面向切面编程的接口调用耗时计算方法、装置、计算机设备、计算机可读存储介质及计算机程序程序产品。
本文实施例提供了一种面向切面编程的接口调用耗时计算方法,包括:根据预先确定的待计算接口调用耗时的微服务程序,配置AOP插件包名,所述AOP插件包名包括微服务程序的部署路径,其中,所述微服务程序包括多个微服务方法;根据所述AOP插件包名,将AOP插件切入到所述微服务程序中微服务方法的切点;当所述微服务方法被访问时,所述AOP插件由所述切点激活,并由所述AOP插件打印日志;根据所述日志中记录的微服务方法被调用的时长,确定微服务程序的接口耗时信息。
根据本文实施例的一个方面,所述根据预先确定的待计算接口调用耗时的微服务程序,配置AOP插件包名包括:根据接口调用耗时计算需求,确定待计算接口调用耗时的微服务程序;根据所述微服务程序在服务器中的部署位置,在所述微服务程序的配置文件中确定配置项参数,所述配置项参数中包括所述微服务程序的部署路径;将所述部署路径确定为所述AOP插件包名。
根据本文实施例的一个方面,根据所述AOP插件包名,将AOP插件切入到所述微服务程序中的微服务方法中包括:查询所述微服务程序的配置项参数,确定各微服务程序中的配置项参数中的部署路径;根据所述部署路径,将与所述部署路径具有相同内容的包名对应的AOP插件,切入至所述微服务程序中的微服务方法的切点。
根据本文实施例的一个方面,所述微服务方法被调用的时长包括:当所述微服务被调用访问时,拦截所述切点调用AOP插件,打印日志并在消息队列中记录所述接口访问的开始时间;当所述微服务被调用返回时,拦截所述切点,打印日志并在消息队列中记录所述接口访问的结束时间,所述接口访问的开始时间与结束时间之差,为所述微服务方法被调用的时长。
根据本文实施例的一个方面,所述方法包括:根据微服务程序中多个同时被调用的微服务方法的调用时长之和,确定微服务程序的接口调用耗时信息。
根据本文实施例的一个方面,所述消息队列包括:所述微服务内的消息队列、所述AOP中的消息队列中的一种。
根据本文实施例的一个方面,所述方法进一步包括:根据耗时时间、切点对应的微服务方法名称及预设告警值,判断所述微服务方法是否异常;若所述微服务方法异常,记录异常信息。
本文实施例提供了一种面向切面编程的接口调用耗时计算装置,所述装置包括:
AOP插件包名配置单元,用于根据预先确定的待计算接口调用耗时的微服务程序,配置AOP插件包名,所述AOP插件包名包括微服务程序部署路径,其中,所述微服务程序包括多个微服务方法;切入单元,用于根据所述AOP插件包名,将AOP插件切入到所述微服务程序中微服务方法的切点;插件日志打印单元,用于当所述微服务方法执行到所述切点时,打印所述AOP插件日志;接口耗时信息确定单元,用于根据所述日志中记录的微服务方法被调用的时长,确定微服务程序的接口耗时信息。
本文实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述面向切面编程的接口调用耗时计算方法。
本文实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述面向切面编程的接口调用耗时计算方法。
本文实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现所述面向切面编程的接口调用耗时计算方法。
本方案通过全局AOP的原理,通过提供AOP插件、微服务程序引入插件,通过相关配置即可实现无侵入式统计接口耗时的功能,提高微服务业务统计效率。
附图说明
为了更清楚地说明本文实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本文的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为本文实施例一种面向切面编程的接口调用耗时计算方法的流程图;
图2所示为本文实施例一种配置AOP插件包名的方法流程图;
图3所示为本文实施例一种将AOP插件切入到微服务方法的方法流程图;
图4所示为本文实施例一种确定微服务方法被调用的时长的方法流程图;
图5所示为本文实施例一种确定耗时异常的方法流程图;
图6所示为本文实施例一种面向切面编程的接口调用耗时计算装置的结构示意图;
图7所示为本文实施例面向切面编程的接口调用耗时计算装置的具体结构示意图;
图8所示为本文实施例一种计算机设备的结构示意图。
附图符号说明:
601、AOP插件包名配置单元;
602、切入单元;
603、插件日志打印单元;
604、接口耗时信息确定单元;
6041、接口访问开始时间确定模块;
6042、接口访问结束时间确定模块;
802、计算机设备;
804、处理器;
806、存储器;
808、驱动机构;
810、输入/输出模块;
812、输入设备;
814、输出设备;
816、呈现设备;
818、图形用户接口;
820、网络接口;
822、通信链路;
824、通信总线。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。
需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。
需要说明的是,本文的面向切面编程的接口调用耗时计算方法可用于软件开发领域,也可用于金融领域,本文对面向切面编程的接口调用耗时计算方法及装置的应用领域不做限定。
在本说明书中,面向切面编程(AOP,Aspect-Oriented Programming)是一种通过预编译方式在运行期间动态代理实现程序功能的统一维护的技术,该技术将不同对象的共同功能提取出来,通过切点触发的方式进行调用。可以在程序编译、运行时切入到指定的类、方法,利用面向切面编程可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高开发的效率。AOP是Spring的一个重要组件,用于实现日志监听、事务管理、权限控制等,AOP对原有代码无侵入性。当微服务程序运行时,AOP根据定义的切点,匹配需要切入的目标方法,即调用的后台数据接口,通过动态代理的方式生成切面。
图1所示为本文实施例一种面向切面编程的接口调用耗时计算方法的流程图,具体包括如下步骤:
步骤101,根据预先确定的待计算接口调用耗时的微服务程序,配置AOP插件包名,所述AOP插件包名包括微服务程序的部署路径,其中,所述微服务程序包括多个微服务方法。在本步骤中,待计算接口调用耗时的微服务程序为根据计算接口调用耗时需求确定的微服务程序。根据微服务程序确定微服务程序的配置文件中的参数,进一步确定AOP插件的包名。在本说明书的一些实施例中,AOP插件包名可以以父子目录的形式体现,包名包括该目录涵盖的所有微服务程序。本步骤相当于预先在AOP插件中注册待计算接口调用耗时的微服务程序,提示AOP插件与其对应的微服务程序。
在本说明书的一些实施例中,一个微服务程序包括一个或以上微服务方法。当微服务程序被调用方调用时,微服务方法被访问。微服务方法包括但不限于:新增、修改、查询、删除等操作。关于配置AOP插件包名的具体描述见图2。
步骤102,根据所述AOP插件包名,将AOP插件切入到所述微服务程序中微服务方法的切点。在本步骤中,根据AOP插件包名及微服务程序的配置文件记录的配置参数,确定与AOP插件对应的微服务程序。并通过注解的方式将AOP插件插入至微服务程序中微服务方法的切点,即为,根据配置的切点向微服务方法中引入AOP插件的相关功能。在本说明书中,AOP插件通过切点触发的形式被调用。切点可以是对象、注解等,切点可以使用Aspect注解中的参数或通过xml配置文件进行声明。
因为每一个微服务程序包括一个或多个微服务方法,因此,本步骤也是将AOP插件包名切入到微服务程序对应的一个或多个微服务方法中。对微服务程序来说,在微服务程序的代码中引入AOP插件,可以直接使用AOP插件中的类、属性和方法,通过读取AOP插件包名,切入到包名下所有微服务程序对应的微服务方法。具体的,通过在pom.xml中配置AOP插件的坐标,即可以引入AOP插件。例如,AOP插件的坐标为:
<groupId>org.aop.logging</groupId>
<artifactId>aop-logging</artifactId>
<version>1.0</version>
为一个微服务程序提供切面注入的机制,在微服务程序运行中将定义好的切面通过切点绑定到业务中。通过AOP切面编程,可以降低对微程序服务接口耗时计算的代码与微服务程序中所有微服务方法代码的耦合性。
步骤103,当所述微服务方法被访问时,所述AOP插件由所述切点激活,由所述AOP插件打印日志。本步骤中,通过AOP插件读取配置的包名作为切点,切入AOP插件报名下所有程序的微服务方法。当微服务方法被主业务调用或访问,AOP插件根据微服务方法被调用的动作,进行增强。具体的,当微服务方法被主业务开始调用访问,AOP插件拦截切点,打印日志;当微服务方法被主业务调用返回时,AOP插件拦截切点,再次打印日志。本说明书的AOP插件包括前置、后置,本说明书对此不作限定。
步骤104,根据所述日志中记录的微服务方法被调用的时长,确定微服务程序的接口耗时信息。在本步骤中,根据步骤103中两次打印的日志中记录的日志打印时间,确定微服务方法被主业务调用的时间长度。进一步确定微服务程序的接口耗时信息。
图2所示为本文实施例一种配置AOP插件包名的方法流程图,具体包括如下步骤:
步骤201,根据接口调用耗时计算需求,确定待计算接口调用耗时的微服务程序。在本步骤中,接口调用耗时计算需求是根据业务规则或业务规定预先设定的,根据接口调用耗时需求,可以确定需要进行耗时计算的微服务程序。例如,根据接口调用耗时计算需求确定待计算接口调用耗时的微服务程序包括:微服务程序A、微服务程序B、微服务程序C。
步骤202,根据所述微服务程序在服务器中的部署位置,在所述微服务程序的配置文件中确定配置项参数,所述配置项参数中包括所述微服务程序的部署路径。
在本步骤中,微服务程序通常部署在服务器中,根据微服务运行部署的服务器的位置或地址,在微服务程序的配置文件中确定配置参数。具体的,可以在微服务程序的*.properties文件、*.application文件等文件中配置参数。在本说明书的一些实施例中,配置项参数可以是键值对形式的参数。例如,配置项参数为键值对aop.logging.scope=com/goole/guava/guava,其中,键为aop.logging.scope,对应的值为com/goole/guava/guava,表示AOP将切入com/goole/guava/guava下的所有微服务程序。将配置项参数中的值作为微服务程序的部署路径
步骤203,将所述部署路径确定为所述AOP插件包名。本步骤将微服务程序中确定的配置项参数中的值作为AOP插件的包名。
图3所示为本文实施例一种将AOP插件切入到微服务方法的方法流程图,具体包括如下步骤:
步骤301,查询所述微服务程序的配置项参数,确定各微服务程序中的配置项参数中的部署路径。在本说明书中,所有的微服务程序中都预先存储有配置项参数。因此,通过查询所有微服务程序中的配置项参数,可以确定各个微服务程序的部署路径。具体的,可以利用配置项参数的键值对中的键aop.logging.scope查询所有微服务程序的配置项参数中的键值对中与键相对应的值,即,微服务程序的部署路径。
步骤302,根据所述部署路径,将与所述部署路径具有相同内容的包名对应的AOP插件,切入至所述微服务程序中的微服务方法的切点。在本步骤中,根据AOP插件的包名,与步骤301中确定的微服务程序的部署路径进行对比,若一致,则确定该微服务程序与AOP插件对应,该微服务程序可以引入该AOP插件,该AOP插件可以切入到该微服务程序及该微服务程序包括的所有微服务方法中。若不一致,则无法将该AOP插件切入到微服务程序中。
在本说明书的一些实施例中,当AOP插件切入到微服务程序中的微服务方法时,AOP插件可以得到微服务方法对应的方法介入。在后续步骤中,AOP插件根据微服务方法被调用的进度,对切点进行拦截。
图4所示为本文实施例一种确定微服务方法被调用的时长的方法流程图,具体包括如下步骤:
步骤401,当所述微服务被调用访问时,拦截所述切点调用AOP插件,打印日志并在消息队列中记录所述接口访问的开始时间。在本步骤中,当使用微服务的各个调用方在调用微服务时,当微服务方法的代码运行到切点后,马上对切点进行拦截操作,调用AOP插件的功能。例如,某查询汇率的微服务具有多个调用方,调用方可以是手机银行APP、网上银行等。当某个调用方执行查询汇率的动作时,调用查询汇率的微服务程序。
在本说明书的一些实施例中,根据微服务被调用方调用的动作,在切面的某个特定的连接点上确定执行的动作,执行的动作也可以理解为通知。在本说明书中,通知包括前置通知及后置通知,通知和切点关联,并在满足这个切点的连接点上运行具体的微服务方法。在本步骤中,预先根据微服务开始被调用访问的动作,确定切点。当微服务方法的代码实际运行到该切点,拦截切点并确定前置通知,打印日志,在打印的日志中记录前置时间,即为微服务方法进入的时间,也是接口访问的时间。
步骤402,当所述微服务被调用返回时,拦截所述切点调用AOP插件,打印日志并在消息队列中记录所述接口访问的结束时间,所述接口访问的时间与所述接口返回的时间之差,为所述微服务方法被调用的时长。在本步骤中,预先根据微服务被调用返回的动作,确定切点。当微服务方法的代码实际运行到该切点,微服务方法被调用访问返回,拦截切点并确定后置通知,打印日志,在打印的日志中记录后置时间,即为微服务方法返回的时间,也是接口返回的时间。将接口返回的时间与接口访问的时间作差,可以确定该微服务方法被调用的时间长度。
在本说明书的一些实施例中,根据微服务程序中多个同时被调用的微服务方法的调用时长之和,确定微服务程序的接口调用耗时信息。例如,在查询汇率的微服务程序下,有3个微服务方法同时被调用。则将3个微服务方法各自的被调用时间长度加和,确定查询汇率微服务程序的接口调用时间。
在本说明书的一些实施例中,根据切入的微服务方法,当获取接口访问的开始时间后,打印日志输出,将开始时间相关的信息输入至消息队列中,随后继续微服务程序接口的内部逻辑;当微服务接口内部逻辑执行完成返回时,由AOP记录接口访问的结束时间,将结束时间相关的信息输入至消息队列中。进一步通过配置消息队列中的服务地址、topic等消费消息队列中的数据,在获取到消息队列中微服务接口的微服务方法名称、微服务方法开始时间、微服务方法结束时间,计算微服务方法的接口调用耗时。在本说明书的一些实施例中,消息队列中的信息如下表示:{method:queryTime,startTime:20220720200730,endTime:20220720200948},其中包括微服务方法开始时间、微服务方法结束时间。
在本说明书的一些实施例中,消息队列包括微服务内的消息队列、AOP中的消息队列中的至少一种。
图5所示为本文实施例一种确定耗时异常的方法流程图,具体包括如下步骤:
步骤501:根据耗时时间、切点对应的微服务方法名称及预设告警值,判断所述微服务方法是否异常。在本步骤中,耗时过长的请求将导致调用方调用超时,会造成报错,引发业务生产风险。因此预先设定接口耗时的告警值,用于判断耗时微服务方法的耗时时间是否超时。
步骤502,若所述微服务方法异常,记录异常信息。判断耗时时间与预设告警值的大小。若耗时时间大于预设告警值,则判断微服务方法调用异常,记录该微服务方法的名称或编号、该微服务方法的接口调用耗时,并记录在html页面中生成报告。
如图6所示为本文实施例一种面向切面编程的接口调用耗时计算装置的结构示意图,在本图中描述了面向切面编程的接口调用耗时计算装置的基本结构,其中的功能单元、模块可以采用软件方式实现,也可以采用通用芯片或者特定芯片实现,面向切面编程的接口调用耗时计算,实现面向切面编程的接口调用耗时计算,该装置具体包括:
AOP插件包名配置单元601,用于根据预先确定的待计算接口调用耗时的微服务程序,配置AOP插件包名,所述AOP插件包名包括微服务程序部署路径,其中,所述微服务程序包括多个微服务方法;
切入单元602,用于根据所述AOP插件包名,将AOP插件切入到所述微服务程序中微服务方法的切点;
插件日志打印单元603,用于当所述微服务方法执行到所述切点时,打印所述AOP插件日志;
接口耗时信息确定单元604,用于根据所述日志中记录的微服务方法被调用的时长,确定微服务程序的接口耗时信息。
本方案通过全局AOP的原理,通过提供AOP插件、微服务程序引入插件,通过相关配置即可实现无侵入式统计接口耗时的功能,提高微服务业务统计效率。
作为本文的一个实施例,还可以参考如图7所示为本实施例面向切面编程的接口调用耗时计算装置的具体结构示意图。
作为本文的一个实施例,所述接口耗时信息确定单元604进一步包括:
接口访问开始时间确定模块6041,用于当所述微服务被调用访问时,拦截所述切点调用AOP插件,打印日志并在消息队列中记录所述接口访问的开始时间;
接口访问结束时间确定模块6042,用于当所述微服务被调用返回时,拦截所述切点调用AOP插件,打印日志并在消息队列中记录所述接口访问的结束时间;
如图8所示,为本文实施例提供的一种计算机设备,本文中的装置可以为本实施例中的计算机设备,执行本文的上述方法。所述计算机设备802可以包括一个或多个处理器804,诸如一个或多个中央处理单元(CPU),每个处理单元可以实现一个或多个硬件线程。计算机设备802还可以包括任何存储器806,其用于存储诸如代码、设置、数据等之类的任何种类的信息。非限制性的,比如,存储器806可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备802的固定或可移除部件。在一种情况下,当处理器804执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备802可以执行相关联指令的任一操作。计算机设备802还包括用于与任何存储器交互的一个或多个驱动机构808,诸如硬盘驱动机构、光盘驱动机构等。
计算机设备802还可以包括输入/输出模块810(I/O),其用于接收各种输入(经由输入设备812)和用于提供各种输出(经由输出设备814)。一个具体输出机构可以包括呈现设备816和相关联的图形用户接口(GUI)818。在其他实施例中,还可以不包括输入/输出模块810(I/O)、输入设备812以及输出设备814,仅作为网络中的一台计算机设备。计算机设备802还可以包括一个或多个网络接口820,其用于经由一个或多个通信链路822与其他设备交换数据。一个或多个通信总线824将上文所描述的部件耦合在一起。
通信链路822可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路822可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
对应于图1至图5中的方法,本文实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法的步骤。
本文实施例还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行如图1至图5所示的方法。
本文实施例还提供了一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序被处理器执行时实现如图1至图5所示的方法。
应理解,在本文的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本文实施例的实施过程构成任何限定。
还应理解,在本文实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本文所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。
另外,在本文各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本文的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本文各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本文中应用了具体实施例对本文的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本文的方法及其核心思想;同时,对于本领域的一般技术人员,依据本文的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本文的限制。

Claims (11)

1.一种面向切面编程的接口调用耗时计算方法,其特征在于,所述方法包括:
根据预先确定的待计算接口调用耗时的微服务程序,配置AOP插件包名,所述AOP插件包名包括微服务程序的部署路径,其中,所述微服务程序包括多个微服务方法;
根据所述AOP插件包名,将AOP插件切入到所述微服务程序中微服务方法的切点;
当所述微服务方法被访问时,所述AOP插件由所述切点激活,并由所述AOP插件打印日志;
根据所述日志中记录的微服务方法被调用的时长,确定微服务程序的接口耗时信息。
2.根据权利要求1所述的面向切面编程的接口调用耗时计算方法,其特征在于,所述根据预先确定的待计算接口调用耗时的微服务程序,配置AOP插件包名包括:
根据接口调用耗时计算需求,确定待计算接口调用耗时的微服务程序;
根据所述微服务程序在服务器中的部署位置,在所述微服务程序的配置文件中确定配置项参数,所述配置项参数中包括所述微服务程序的部署路径;
将所述部署路径确定为所述AOP插件包名。
3.根据权利要求2所述的面向切面编程的接口调用耗时计算方法,其特征在于,根据所述AOP插件包名,将AOP插件切入到所述微服务程序中的微服务方法的切点包括:
查询所述微服务程序的配置项参数,确定各微服务程序中的配置项参数中的部署路径;
根据所述部署路径,将与所述部署路径具有相同内容的包名对应的AOP插件,切入至所述微服务程序中的微服务方法的切点。
4.根据权利要求3所述的面向切面编程的接口调用耗时计算方法,其特征在于,所述微服务方法被调用的时长包括:
当所述微服务被调用访问时,拦截所述切点调用AOP插件,打印日志并在消息队列中记录所述接口访问的开始时间;
当所述微服务被调用返回时,拦截所述切点调用AOP插件,打印日志并在消息队列中记录所述接口访问的结束时间,所述接口访问的开始时间与结束时间之差,为所述微服务方法被调用的时长。
5.根据权利要求4所述的面向切面编程的接口调用耗时计算方法,其特征在于,所述方法包括:
根据微服务程序中多个同时被调用的微服务方法的调用时长之和,确定微服务程序的接口调用耗时信息。
6.根据权利要求5所述的面向切面编程的接口调用耗时计算方法,其特征在于,所述消息队列包括:所述微服务内的消息队列、所述AOP中的消息队列中的一种。
7.根据权利要求6所述的面向切面编程的接口调用耗时计算方法,其特征在于,所述方法进一步包括:
根据耗时时间、切点对应的微服务方法名称及预设告警值,判断所述微服务方法是否异常;
若所述微服务方法异常,记录异常信息。
8.一种面向切面编程的接口调用耗时计算装置,其特征在于,所述装置包括:
AOP插件包名配置单元,用于根据预先确定的待计算接口调用耗时的微服务程序,配置AOP插件包名,所述AOP插件包名包括微服务程序部署路径,其中,所述微服务程序包括多个微服务方法;
切入单元,用于根据所述AOP插件包名,将AOP插件切入到所述微服务程序中微服务方法的切点;
插件日志打印单元,用于当所述微服务方法被访问时,所述AOP插件由所述切点激活,并由所述AOP插件打印日志;
接口耗时信息确定单元,用于根据所述日志中记录的微服务方法被调用的时长,确定微服务程序的接口耗时信息。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任意一项所述的方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任意一项所述的方法。
CN202210921028.3A 2022-08-02 2022-08-02 一种面向切面编程的接口调用耗时计算方法及装置 Pending CN115248737A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210921028.3A CN115248737A (zh) 2022-08-02 2022-08-02 一种面向切面编程的接口调用耗时计算方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210921028.3A CN115248737A (zh) 2022-08-02 2022-08-02 一种面向切面编程的接口调用耗时计算方法及装置

Publications (1)

Publication Number Publication Date
CN115248737A true CN115248737A (zh) 2022-10-28

Family

ID=83700230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210921028.3A Pending CN115248737A (zh) 2022-08-02 2022-08-02 一种面向切面编程的接口调用耗时计算方法及装置

Country Status (1)

Country Link
CN (1) CN115248737A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115904365A (zh) * 2023-02-14 2023-04-04 支付宝(杭州)信息技术有限公司 一种接口资源识别方法、装置、设备及可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115904365A (zh) * 2023-02-14 2023-04-04 支付宝(杭州)信息技术有限公司 一种接口资源识别方法、装置、设备及可读存储介质
CN115904365B (zh) * 2023-02-14 2023-05-23 支付宝(杭州)信息技术有限公司 一种接口资源识别方法、装置、设备及可读存储介质

Similar Documents

Publication Publication Date Title
US11689899B2 (en) System and method for triggering on platform usage
CA2725274C (en) Monitoring and tracking application usage
CN111708749B (zh) 操作日志记录方法、装置、计算机设备及存储介质
WO2020259003A1 (zh) 一种链路追踪方法及装置
EP3403187A1 (en) Single click delta analysis
CN107870762B (zh) Soa调用链路跟踪的方法、装置及系统
CN112256542B (zh) 基于eBPF的微服务系统性能检测方法、装置和系统
CN111092745A (zh) 基于区块链的日志处理方法、装置、计算机设备及存储介质
CN112527414A (zh) 一种基于前端的数据处理方法、装置、设备及存储介质
WO2020224100A1 (zh) 区块链配置文件的处理装置、系统、方法及存储介质
EP3213193A1 (en) Monitoring and correlating a binary process in a distributed business transaction
CN111131221A (zh) 接口校验的装置、方法及存储介质
CN112039701A (zh) 接口调用监控方法、装置、设备及存储介质
CN115248737A (zh) 一种面向切面编程的接口调用耗时计算方法及装置
CN116893945A (zh) 一种运维云平台业务预警方法、系统及装置
CN114895879B (zh) 管理系统设计方案确定方法、装置、设备及存储介质
CN113656795B (zh) 窗口操作行为审计方法及系统
CN113761524A (zh) 激活窗口审计方法及系统
CN115242872A (zh) 数据处理方法、装置、计算机设备及可读存储介质
CN112269941A (zh) 业务实时推送方法、系统、电子设备及存储介质
CN112181535A (zh) 一种接口调用方法、装置、服务器及存储介质
CN115242625B (zh) 服务部署方法、装置、计算机设备及可读存储介质
Lencevicius et al. Performance assertions for mobile devices
CN117978855A (zh) 用户操作终止方法、装置、服务器及存储介质
CN115421723A (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