一种基于场景的服务监控方法技术

技术编号:27287753 阅读:20 留言:0更新日期:2021-02-06 11:56
本发明专利技术提供一种基于场景的服务监控方法,属于java应用监控技术领域,本发明专利技术依据场景设置方法的调用的为起点、场景销毁方法的调用为终点,圈定一段程序运行范围并在共享区标记一个当前会话唯一标识值。在此过程中,以会话唯一标识为基础,aop横切面配置的方法调用为监控点,记录方法调用情况。最终以会话唯一标识配合场景信息即可串连出完整的场景服务调用过程记录,从而达到服务监控的目的。从而达到服务监控的目的。从而达到服务监控的目的。

【技术实现步骤摘要】
一种基于场景的服务监控方法


[0001]本专利技术涉及java应用监控技术,尤其涉及一种基于场景的服务监控方法。

技术介绍

[0002]现行针对服务器、网络、http接口等的技术指标监控已经十分完善,但是针对业务场景的服务依赖监控仍然十分欠缺。
[0003]此处的外部系统服务并非技术意义上的http接口、webservice接口,而是业务意义上的服务,其可能是由多个接口经过一系列逻辑组成,甚至有可能只是共享平台共享库或公用redis上的一次数据查询。例如:电子证照系统提供的电子证照预览服务,该服务需要先通过两个接口针对应用和业务进行认证,以前两个接口的结果为第三个接口的部分参数,才能够获得服务结果:一个限时限次使用的跳转接口。即是政务行业对于业务层面的外部系统服务提供方的服务情况梳理、支撑管理有比较急切的需求。
[0004]现行的技术解决方案大多是利用snmp协议(路由器、交换机等都是基于snmp协议的,通过snmp协议可以采集和接收信息)或者分析调用日志或是服务出口包裹一层技术网关的方式获得系统间接口调用的情况。但是这些监控方式都过于技术化,很难满足政务行业对于业务层面上系统服务监控的要求。

技术实现思路

[0005]为了解决以上技术问题,本专利技术提供了一种基于场景的服务监控方法,由于项目上应用都是基于spring生态构建的java应用,所以本方法提供了一种基于spring的aop技术,配合场景设置、销毁规范的接口调用管理方法。
[0006]本专利技术的技术方案是:
>[0007]本方法依据场景设置方法的调用的为起点、场景销毁方法的调用为终点,圈定一段程序运行范围并在共享区标记一个当前会话唯一标识值。在此过程中,以会话唯一标识为基础,aop横切面配置的方法调用为监控点,记录方法调用情况。最终以会话唯一标识配合场景信息即可串连出完整的场景服务调用过程记录,从而达到服务监控的目的。
[0008]本方法以spring生态aop技术为主要实现技术,场景信息设置、服务调用信息记录为主要扩展点,实现尽量不改变原有代码的情况下完成所有的监控功能,并提供足够强大的可扩展性。
[0009]本方法限定以spring生态为基础,并要求所有被监控的外部系统服务类调用都需要遵循“一次方法调用即是一次完整服务”的原则,门面模式封装的服务入口方法必须交由spring容器进行管理。
[0010]进一步的,
[0011]根据使用情况不同,使用服务器内存、中间件、数据库方式对场景信息进行关联存储。
[0012]场景的唯一标识以使用内存区随机存储的uuid值(单线程应用)、线程id(多线程
应用)、tomcat提供的sessionId(分布式多线程应用)或者请求间传递的某一唯一标识参数值来做。
[0013]进一步,
[0014]执行过程如下:
[0015]1)、应用为web应用,使用tomcat为中间件,会话id为客户端会话id;
[0016]2)、共享区为数据库external_session表,表存储会话id、场景id和场景类型;
[0017]3)、场景入口由前端js调用后端http接口构建业务场景开始锚点;
[0018]4)、场景出口同样由前端js调用后端http接口构建场景结束锚点,并在处理完成后销毁external_session表中保留的场景关联信息。
[0019]详细过程如下:
[0020]进入业务办理场景,构建场景开始锚点
[0021]前端调用后台接口传递当前sessionId值场景上下文信息,后台接口接收到信息后存入数据库,生成记录id作为场景id;
[0022]业务开始正常审核,当触发aop横切面方法调用时
[0023]aop方法中从当前线程信息中获取sessionId值通过sessionId值从external_session表中取得对应的场景id和场景类型;根据场景类型找到对应的处理类,传入场景id和方法执行信息,完成执行记录。
[0024]业务办理完成后,场景走向出口,发起场景销毁请求
[0025]前端调用后台接口,此时会附带上之前一直在使用的sessionId,在所有操作结束后,删除external_session表中对应sessionId值记录。
[0026]本专利技术的有益效果是
[0027]能够在几乎不动原有代码的前提下实现监控功能。
[0028]灵活扩展,能够针对具体场景扩展具体实现对应场景的场景信息存储,服务调用情况监控信息存储。
[0029]能够从促使开发人员向代码模块化提升,并能有效推进代码编写者的代码可读性改善。
附图说明
[0030]图1是本专利技术的工作流程示意图。
具体实施方式
[0031]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例,基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0032]本方法基于java平台,依赖于spring生态,使用spring的aop技术代理以门面模式封装的外部系统服务类调用方法(需要将外部系统服务类封装成spring的bean,封装原则是一次方法调用即是一次外部系统服务)。
[0033]一般而言,场景的入口都是跳转页面的入口、弹框页面打开的时候、方法执行的开
始处。场景的出口与之对应的就是跳离某些页面的点、弹框关闭的时候、方法执行结束的地方。基于如上情况,方法使用显式代码调用、过滤器和aop代理增强的方式完成场景构建点改造。
[0034]场景构建的目的在于将场景信息放入共享缓存区,便于触发外部服务调用时获取信息进行服务调用情况记录。根据使用情况不同,可以使用服务器内存、中间件、数据库方式对场景信息进行关联存储。场景的唯一标识可以以使用内存区随机存储的uuid值(单线程应用)、线程id(多线程应用)、tomcat提供的sessionId(分布式多线程应用)或者请求间传递的某一唯一标识参数值来做(需要跨系统场景传递)。
[0035]假设在场景顺序执行的过程中,触发了外部系统服务调用,spring代理的aop增强服务会被调用,在这部分能力增强的代码中,可以根据具体需求扩展外部系统服务调用的后置操作(例如:记录调用情况、存储日志等)。
[0036]以某市一体化项目的业务场景外部系统服务调用记录模块为例,执行过程如图1所示,
[0037]实现约定如下:
[0038]1、应用为web应用,使用tomcat为中间件,会话id为客户端会话id;
[0039]2、共享区为数据库external_session表,表存储会话id、场景id和场景类型;
[0040]3、场景入口由前端js调用后端本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于场景的服务监控方法,其特征在于,依据场景设置方法的调用的为起点、场景销毁方法的调用为终点,圈定程序运行范围并在共享区标记一个当前会话唯一标识值;在此过程中,以会话唯一标识为基础,aop横切面配置的方法调用为监控点,记录方法调用情况;最终以会话唯一标识配合场景信息即可串连出完整的场景服务调用过程记录,从而达到服务监控的目的。2.根据权利要求1所述的方法,其特征在于,以spring生态aop技术为主要实现技术,场景信息设置、服务调用信息记录为主要扩展点,实现不改变原有代码的情况下完成所有的监控功能。3.根据权利要求2所述的方法,其特征在于,所有被监控的外部系统服务类调用都需要遵循“一次方法调用即是一次完整服务”的原则,门面模式封装的服务入口方法必须交由spring容器进行管理。4.根据权利要求1所述的方法,其特征在于,根据使用情况不同,使用服务器内存、中间件、数据库方式对场景信息进行关联存储。5.根据权利要求1所述的方法,其特征在于,场景的唯一标识以使用内存区随机存储的uuid值(单线程应用)、线程id(多线程应用)、tomcat提供的sessionId(分布式多线程应用)或者请求间传递的某一唯一标识参数值来做。6.根据权利要求5所述的方法,其特征在于,执行过程如下:1)、应用为web...

【专利技术属性】
技术研发人员:陈德明郑立铭
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

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

1