【技术实现步骤摘要】
本申请涉及数据处理
,具体涉及一种用于程序跟踪的方法、装置及电子设备。本申请同时涉及一种流量控制方法、装置及电子设备。
技术介绍
在计算机科学中,一个大型程序通常是由多个子程序组成的。子程序作为一个大型程序中的某部份代码,由一个或多个语句块组成。子程序负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。子程序一般会有输入参数并有返回值,能被其他程序调用,也可调用其他子程序,甚至可自身调用(如递归)。子程序的最后一条指令一定是返回指令,故能保证重新返回到调用它的程序中去。在实际应用中,经常需要跟踪大型程序运行过程中各个子程序的实际执行情况,以便定位某个子程序是否出了问题,或者是基于各个子程序的实际执行情况对大型程序进行分析和改造等优化处理。一个非常典型的跟踪程序的应用是,当Web应用的前端用户投诉搜索排名存在问题时,需要在线查询这个搜索行为对应的后端业务执行流程以及流程环节中的数据,以便定位某个模块或者某个业务环节是否出了问题。目前,跟踪程序运行过程中各个子程序执行情况的常用方法,其主要过程如下所述:首先,生成一个对应本次程序运行的跟踪标识符;然后,在每执行完一个子程序后,根据该子程序的实际执行情况,生成该子程序的跟踪数据,并存储跟踪标识符和该单元产生的跟踪数据的对应记录。其中,每个子程序均能够直接读取预先生成的跟踪标识符。OSGi(OpenServiceGatewayinitiative)技术是面向Java的动态模型系统。OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选。Java提供在多个平台支持产品的可移 ...
【技术保护点】
一种用于程序跟踪的方法,其特征在于,包括:接收调用方发送的对应特定程序的调用请求;根据所述调用请求,生成跟踪标识符;所述跟踪标识符用于标识所述特定程序的本次调用所产生的跟踪数据;执行所述特定程序包括的各级子程序,针对至少一个所述子程序,在所述子程序执行后,生成所述子程序的跟踪数据,并存储所述跟踪标识符和所述子程序的跟踪数据的对应记录;其中,用于存储所述跟踪标识符的存储区域和用于存储所述对应记录的存储区域,是指OSGI和非OSGI的子程序均能够访问的存储区域。
【技术特征摘要】
1.一种用于程序跟踪的方法,其特征在于,包括:接收调用方发送的对应特定程序的调用请求;根据所述调用请求,生成跟踪标识符;所述跟踪标识符用于标识所述特定程序的本次调用所产生的跟踪数据;执行所述特定程序包括的各级子程序,针对至少一个所述子程序,在所述子程序执行后,生成所述子程序的跟踪数据,并存储所述跟踪标识符和所述子程序的跟踪数据的对应记录;其中,用于存储所述跟踪标识符的存储区域和用于存储所述对应记录的存储区域,是指OSGI和非OSGI的子程序均能够访问的存储区域。2.根据权利要求1所述的用于程序跟踪的方法,其特征在于,所述调用方包括客户端或第三方应用。3.根据权利要求1所述的用于程序跟踪的方法,其特征在于,所述跟踪标识符包括所述调用方的IP地址、所述跟踪标识符的生成时间、所述调用请求的标识符或发起所述调用请求的线程标识符或进程标识符,以及调用方所属类别的至少一者。4.根据权利要求3所述的用于程序跟踪的方法,其特征在于,所述根据所述调用请求,生成跟踪标识符,包括:根据所述调用请求,获取所述调用方的IP地址、所述调用请求的标识符或所述发起所述调用请求的线程标识符或进程标识符,以及所述调用方所属类别的至少一者;根据所述调用方的IP地址、所述调用请求的标识符或所述发起所述调用请求的线程标识符或进程标识符、当前系统时间,以及所述调用方所属类别的至少一者,生成所述跟踪标识符。5.根据权利要求1所述的用于程序跟踪的方法,其特征在于,所述跟踪标识符是全局唯一标识符。6.根据权利要求1所述的用于程序跟踪的方法,其特征在于,所述根据所述调用请求,生成跟踪标识符,采用如下方式:生成随机数,作为所述跟踪标识符。7.根据权利要求1所述的用于程序跟踪的方法,其特征在于,所述用于存
\t储所述跟踪标识符的存储区域,采用如下方式创建:在自定义的类加载器中创建所述用于存储所述跟踪标识符的存储区域。8.根据权利要求1所述的用于程序跟踪的方法,其特征在于,所述用于存储所述对应记录的存储区域,采用如下方式创建:在自定义的类加载器中创建所述用于存储所述对应记录的存储区域。9.根据权利要求7或8所述的用于程序跟踪的方法,其特征在于,所述特定程序是指Java程序语言编写的Web应用程序,所述方法还包括:配置Web容器采用所述自定义的类加载器加载所述特定程序。10.根据权利要求7或8所述的用于程序跟踪的方法,其特征在于,还包括:在加载所述特定程序的过程中,设置所述特定程序的类加载器为所述自定义的类加载器。11.根据权利要求1所述的用于程序跟踪的方法,其特征在于,所述用于存储所述跟踪标识符的存储区域,采用如下方式创建:调用预定的非Java程序,在所述预定的非Java程序中创建所述用于存储所述跟踪标识符的存储区域。12.根据权利要求1所述的用于程序跟踪的方法,其特征在于,所述用于存储所述对应记录的存储区域,采用如下方式创建:调用预定的非Java程序,在所述预定的非Java程序中创建所述用于存储所述对应记录的存储区域。13.根据权利要求1所述的用于程序跟踪的方法,其特征在于,所述子程序的跟踪数据包括:所述子程序的起始执行时间、所述子程序的实际调用参数、所述子程序的执行结果和所述子程序抛出的异常信息的至少一者。14.根据权利要求1所述的用于程序跟踪的方法,其特征在于,所述子程序所属的类包括预先编写的生成并存储跟踪数据的方法;所述在所述子程序执行后,生成所述子程序的跟踪数据,并存储所述跟踪标识符和所述子程序的跟踪数据的对应记录,包括:判断所述子程序所属的类是否包括所述生成并存储跟踪数据的方法;若上述判断结果为是,则通过所述生成并存储跟踪数据的方法,生成所述
\t子程序的跟踪数据,并存储所述跟踪标识符和所述子程序的跟踪数据的对应记录。15.根据权利要求1所述的用于程序跟踪的方法,其特征在于,所述子程序包括非OSGI的子程序或OSGI的子程序。16.根据权利要求1所述的用于程序跟踪的方法,其特征在于,所述用于存储所述对应记录的存储区域采用全局变量或预置的上下文数据容器;所述用于存储所述跟踪标识符的存储区域采用全局变量或预置的上下文数据容器。17.根据权利要求1所述的用于程序跟踪的方法,其特征在于,在所述存储跟踪标识符和所述子程序的跟踪数据的对应记录之前,还包括:激活所述预置的上下文数据容器。18.根据权利要求17所述的用于程序跟踪的方法,其特征在于,还包括:回收所述预置的上下文数据容器。19.根据权利要求1所述的用于程序跟踪的方法,其特征在于,在执行所述特定程序包括的各级子程序过程中,如果调用程序运行于第一设备中,被调用程序运行于第二设备中,则所述调用程序将所述跟踪标识符传递给所述被调用程序;所述在所述子程序执行后,生成所述子程序的跟踪数据,并存储所述跟踪标识符和所述子程序的跟踪数据的对应记录,包括:在所述被调用程序执行后,生成所述被调用程序的跟踪数据;根据接收到的所述跟踪标识符,所述被调用程序回调所述调用程序,将所述跟踪数据返回给所述调用程序;所述调用程序存储所述跟踪标识符和所述被调用程序的跟踪数据的对应记录。20.根据权利要求1所述的用于程序跟踪的方法,其特征在于,在执行所述特定程序包括的各级子程序过程中,如果调用单元运行于第一设备中,被调用单元运行于第二设备中,则所述调用单元直接调用所述被调用单元;所述在所述子程序执行后,生成所述子程序的跟踪数据,并存储所述跟踪标识符和所述子程序的跟踪数据的对应记录,包括:在所述被调用程序执行后,生成所述被调用程序的跟踪数据;所述被调用程序将所述跟踪数据返回给所述调用程序;所述调用程序存储所述跟踪标识符和所述被调用程序的跟踪数据的对应记录。21.一种用于程序跟踪的装置,其特征在于,包括:接收单元,用于接收调用方发送的对应特定程序的调用请求;生成单元,用于根据所述调用请求,生成跟踪标识符;所述跟踪标识符用于标识所述特定程序的本次调用所产生的跟踪数据;跟踪单元,用于执行所述特定程序包括的各级子程序,针对至少一个所述子程序,在所述子程序执行后,生成所述子程序的跟踪数据,并存储所述跟踪标识符和所述子程序的跟踪数据的对应记录;其中,用于存储所述跟踪标识符的存储区域和用于存储所述对应记录的存储区域,是指OSGI和非OSGI的子程序均能够访问的存储区域。22.根据权利要求21所述的用于程序跟踪的装置,其特征在于,所述生成单元包括:获取子单元,用于根据所述调用请求,获取所述调用方的IP地址、所述调用请求的标识符或所述发起所述调用请求的线程标识符或进程标识符,以及所述调用方所属类别的至少一者;生成子单元,用于根据所述调用方的IP地址、所述调用请求的标识符或所述发起所述调用请求的线程标识符或进程标识符、当前系统时间,以及所述调用方所属类别的至少一者,生成所述跟踪标识符。23.根据权利要求21所述的用于程序跟踪的装置,其特征在...
【专利技术属性】
技术研发人员:陈旭东,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛;KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。