一种基于spring拦截器的request ID传递方法及系统技术方案

技术编号:17516396 阅读:102 留言:0更新日期:2018-03-21 01:00
本发明专利技术提供了一种基于spring拦截器的request ID传递方法,包括:接收用户通过应用终端发出的请求;基于集成在应用中的spring拦截器截获请求,基于请求生成日志链唯一请求标识request ID;将request ID放入到threadlocal线程中;spring拦截器获取用户请求的调用信息;用户请求调用结束时,srping拦截器获取请求调用结束信息,将标识有request ID的日志信息打印到日志中。本发明专利技术通过为各个应用统一配置请求拦截器,用来生成唯一的request ID和收集请求信息,能够通过request ID查询出整个请求的调用链日志详情,提高了查询和统计效率,对于排查异常、快速定位非常方便快捷。本发明专利技术还公开了一种基于spring拦截器的request ID传递系统。

A request ID transfer method and system based on spring interceptor

The invention provides a transmission method based on ID request spring interceptor includes: receiving a request from the user terminal through the application of spring; in the application of integrated interceptors to intercept requests based on request to generate a log chain only request identification based on ID request; request ID placed in the ThreadLocal thread; spring interceptor access the call request information; the user request call at the end of the srping interceptor acquisition request calls the end of information, will identify the log information print request ID to log in. The present invention through the unified configuration for each application request interceptor, used to generate request ID and collect the information request only, can through the request ID check out the entire request call chain log details, improve the efficiency of query and statistics, investigation for abnormal, rapid positioning is very convenient. The invention also discloses a transmission system based on ID request spring interceptor.

【技术实现步骤摘要】
一种基于spring拦截器的requestID传递方法及系统
本专利技术属于软件工程
,尤其涉及一种基于spring拦截器的requestID传递方法及系统。
技术介绍
由于软件系统的规模日趋扩大和由此带来的复杂性,会产生大量的日志信息,这些日志需要存储以备查询和分析,而传统的关系数据库对日志存储、查询、分析的能力有限。例如,日志信息通常按照时间顺序进行存储,一个请求在响应处理过程中会形成多条日志信息,不同请求的日志信息在数据库中混杂存储,在日志信息量非常庞大的情况下,对日志文件进行分析时,很难分离出某个特定请求产生的日志信息。因此,如何有效的对日志进行管理是一项亟待解决的问题。
技术实现思路
有鉴于此,本专利技术提供了一种基于spring拦截器的requestID传递方法及系统,通过为各个应用统一配置请求拦截器,用来生成唯一的requestID和收集请求信息,能够通过requestID查询出整个请求的调用链日志详情,提高了查询和统计效率,对于排查异常、快速定位非常方便快捷。为了实现上述目的,本专利技术提供如下技术方案:一种基于spring拦截器的requestID传递方法,包括:接收用户通过应用终端发出的请求;基于集成在应用中的spring拦截器截获所述请求;基于所述请求生成日志链唯一请求标识requestID;将所述requestID放入到threadlocal线程中;所述spring拦截器获取用户请求的调用信息;用户请求调用结束时,所述srping拦截器获取请求调用结束信息,将标识有requestID的日志信息打印到日志中。优选地,所述spring拦截器获取用户请求的调用信息包括:当应用集成了dubbo时,requestID传入dubbo过滤器,同时获取dubbo调用信息。优选地,所述spring拦截器获取用户请求的调用信息还包括:当应用集成了SqlDruID连接池时,requestID传入druID过滤器,同时获取sql的调用信息。优选地,所述dubbo调用信息包括:dubbo服务名,方法名,调用时间和调用参数。优选地,所述sql的调用信息包括:sql语句,参数和执行时间。一种基于spring拦截器的requestID传递系统,包括:接收模块,用于接收用户通过应用终端发出的请求;截获模块,用于基于集成在应用中的spring拦截器截获所述请求;生成模块,用于基于所述请求生成日志链唯一请求标识requestID;存放模块,用于将所述requestID放入到threadlocal线程中;获取模块,用于所述spring拦截器获取用户请求的调用信息;打印模块,用于用户请求调用结束时,所述srping拦截器获取请求调用结束信息,将标识有requestID的日志信息打印到日志中。优选地,所述获取模块用于:当应用集成了dubbo时,requestID传入dubbo过滤器,同时获取dubbo调用信息。优选地,所述获取模块还用于:当应用集成了SqlDruID连接池时,requestID传入druID过滤器,同时获取sql的调用信息。优选地,所述dubbo调用信息包括:dubbo服务名,方法名,调用时间和调用参数。优选地,所述sql的调用信息包括:sql语句,参数和执行时间。从上述技术方案可以看出,本专利技术提供了一种基于spring拦截器的requestID传递方法,首先接收用户通过应用终端发出的请求,然后基于集成在应用中的spring拦截器截获请求,基于请求生成日志链唯一请求标识requestID,将requestID放入到threadlocal线程中,spring拦截器获取用户请求的调用信息,用户请求调用结束时,srping拦截器获取请求调用结束信息,将标识有requestID的日志信息打印到日志中。本专利技术通过为各个应用统一配置请求拦截器,用来生成唯一的requestID和收集请求信息,能够通过requestID查询出整个请求的调用链日志详情,提高了查询和统计效率,对于排查异常、快速定位非常方便快捷。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术公开的一种基于spring拦截器的requestID传递方法实施例1的方法流程图;图2为本专利技术公开的一种基于spring拦截器的requestID传递方法实施例2的方法流程图;图3为本专利技术公开的一种基于spring拦截器的requestID传递系统实施例1的结构示意图;图4为本专利技术公开的一种基于spring拦截器的requestID传递系统实施例2的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,为本专利技术公开的一种基于spring拦截器的requestID传递方法实施例1的流程图,所述方法包括:S101、接收用户通过应用终端发出的请求;在对日志进行管理时,需要生成requestID,在生成requestID时,首先用户通过应用终端发出请求,然后接收用户通过应用终端发出的请求。S102、基于集成在应用中的spring拦截器截获请求;由于应用集成了Spring拦截器,当有请求过来时首先进入spring拦截器,Spring拦截器对用户发出的请求进行截获。S103、基于请求生成日志链唯一请求标识requestID;当截获到请求后,根据截获的请求生成日志链唯一requestID。S104、将requestID放入到threadlocal线程中;然后将生成的requestID放入到threadlocal线程中。S105、spring拦截器获取用户请求的调用信息;然后spring拦截器获取用户请求的调用信息,其中,调用信息包括应用名、方法名等。S106、用户请求调用结束时,srping拦截器获取请求调用结束信息,将标识有requestID的日志信息打印到日志中。当用户请求结束后,再次进入到srping拦截器,同时requestID也会传入进来,然后将整个请求的耗时,是否有调用异常等信息打印到日志中,整个用户请求调用结束,所有日志都打印到了日志文件中。综上所述,在上述实施例中,首先接收用户通过应用终端发出的请求,然后基于集成在应用中的spring拦截器截获请求,基于请求生成日志链唯一请求标识requestID,将requestID放入到threadlocal线程中,spring拦截器获取用户请求的调用信息,用户请求调用结束时,srping拦截器获取请求调用结束信息,将标识有requestID的日志信息打印到日志中。本专利技术通过为各个应用统一配置请求拦截器,用来生成唯一的requestID和收集请求信息,能够通过requestID查询出整个请求的调用链日志详情,提高了查询和统计效率,对于排查异常、快速定位非常方便快捷。本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201711171790.html" title="一种基于spring拦截器的request ID传递方法及系统原文来自X技术">基于spring拦截器的request ID传递方法及系统</a>

【技术保护点】
一种基于spring拦截器的request ID传递方法,其特征在于,包括:接收用户通过应用终端发出的请求;基于集成在应用中的spring拦截器截获所述请求;基于所述请求生成日志链唯一请求标识request ID;将所述request ID放入到threadlocal线程中;所述spring拦截器获取用户请求的调用信息;用户请求调用结束时,所述srping拦截器获取请求调用结束信息,将标识有request ID的日志信息打印到日志中。

【技术特征摘要】
1.一种基于spring拦截器的requestID传递方法,其特征在于,包括:接收用户通过应用终端发出的请求;基于集成在应用中的spring拦截器截获所述请求;基于所述请求生成日志链唯一请求标识requestID;将所述requestID放入到threadlocal线程中;所述spring拦截器获取用户请求的调用信息;用户请求调用结束时,所述srping拦截器获取请求调用结束信息,将标识有requestID的日志信息打印到日志中。2.根据权利要求1所述的方法,其特征在于,所述spring拦截器获取用户请求的调用信息包括:当应用集成了dubbo时,requestID传入dubbo过滤器,同时获取dubbo调用信息。3.根据权利要求2所述的方法,其特征在于,所述spring拦截器获取用户请求的调用信息还包括:当应用集成了SqlDruID连接池时,requestID传入druID过滤器,同时获取sql的调用信息。4.根据权利要求3所述的方法,其特征在于,所述dubbo调用信息包括:dubbo服务名,方法名,调用时间和调用参数。5.根据权利要求4所述的方法,其特征在于,所述sql的调用信息包括:sql语句,参数和执行时间。6.一种基...

【专利技术属性】
技术研发人员:刘俊艳张振沈桐阎志军
申请(专利权)人:北京汇通金财信息科技有限公司国网电子商务有限公司国家电网公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1