CN112328451B - 一种基于场景的服务监控方法 - Google Patents
一种基于场景的服务监控方法 Download PDFInfo
- Publication number
- CN112328451B CN112328451B CN202011220441.4A CN202011220441A CN112328451B CN 112328451 B CN112328451 B CN 112328451B CN 202011220441 A CN202011220441 A CN 202011220441A CN 112328451 B CN112328451 B CN 112328451B
- Authority
- CN
- China
- Prior art keywords
- scene
- session
- service
- information
- external
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种基于场景的服务监控方法,属于java应用监控技术领域,本发明依据场景设置方法的调用的为起点、场景销毁方法的调用为终点,圈定一段程序运行范围并在共享区标记一个当前会话唯一标识值。在此过程中,以会话唯一标识为基础,aop横切面配置的方法调用为监控点,记录方法调用情况。最终以会话唯一标识配合场景信息即可串连出完整的场景服务调用过程记录,从而达到服务监控的目的。
Description
技术领域
本发明涉及java应用监控技术,尤其涉及一种基于场景的服务监控方法。
背景技术
现行针对服务器、网络、http接口等的技术指标监控已经十分完善,但是针对业务场景的服务依赖监控仍然十分欠缺。
此处的外部系统服务并非技术意义上的http接口、webservice接口,而是业务意义上的服务,其可能是由多个接口经过一系列逻辑组成,甚至有可能只是共享平台共享库或公用redis上的一次数据查询。例如:电子证照系统提供的电子证照预览服务,该服务需要先通过两个接口针对应用和业务进行认证,以前两个接口的结果为第三个接口的部分参数,才能够获得服务结果:一个限时限次使用的跳转接口。即是政务行业对于业务层面的外部系统服务提供方的服务情况梳理、支撑管理有比较急切的需求。
现行的技术解决方案大多是利用snmp协议(路由器、交换机等都是基于snmp协议的,通过snmp协议可以采集和接收信息)或者分析调用日志或是服务出口包裹一层技术网关的方式获得系统间接口调用的情况。但是这些监控方式都过于技术化,很难满足政务行业对于业务层面上系统服务监控的要求。
发明内容
为了解决以上技术问题,本发明提供了一种基于场景的服务监控方法,由于项目上应用都是基于spring生态构建的java应用,所以本方法提供了一种基于spring的aop技术,配合场景设置、销毁规范的接口调用管理方法。
本发明的技术方案是:
本方法依据场景设置方法的调用的为起点、场景销毁方法的调用为终点,圈定一段程序运行范围并在共享区标记一个当前会话唯一标识值。在此过程中,以会话唯一标识为基础,aop横切面配置的方法调用为监控点,记录方法调用情况。最终以会话唯一标识配合场景信息即可串连出完整的场景服务调用过程记录,从而达到服务监控的目的。
本方法以spring生态aop技术为主要实现技术,场景信息设置、服务调用信息记录为主要扩展点,实现尽量不改变原有代码的情况下完成所有的监控功能,并提供足够强大的可扩展性。
本方法限定以spring生态为基础,并要求所有被监控的外部系统服务类调用都需要遵循“一次方法调用即是一次完整服务”的原则,门面模式封装的服务入口方法必须交由spring容器进行管理。
进一步的,
根据使用情况不同,使用服务器内存、中间件、数据库方式对场景信息进行关联存储。
场景的唯一标识以使用内存区随机存储的uuid值(单线程应用)、线程id(多线程应用)、tomcat提供的sessionId(分布式多线程应用)或者请求间传递的某一唯一标识参数值来做。
进一步,
执行过程如下:
1)、应用为web应用,使用tomcat为中间件,会话id为客户端会话id;
2)、共享区为数据库external_session表,表存储会话id、场景id和场景类型;
3)、场景入口由前端js调用后端http接口构建业务场景开始锚点;
4)、场景出口同样由前端js调用后端http接口构建场景结束锚点,并在处理完成后销毁external_session表中保留的场景关联信息。
详细过程如下:
进入业务办理场景,构建场景开始锚点
前端调用后台接口传递当前sessionId值场景上下文信息,后台接口接收到信息后存入数据库,生成记录id作为场景id;
业务开始正常审核,当触发aop横切面方法调用时
aop方法中从当前线程信息中获取sessionId值通过sessionId值从external_session表中取得对应的场景id和场景类型;根据场景类型找到对应的处理类,传入场景id和方法执行信息,完成执行记录。
业务办理完成后,场景走向出口,发起场景销毁请求
前端调用后台接口,此时会附带上之前一直在使用的sessionId,在所有操作结束后,删除external_session表中对应sessionId值记录。
本发明的有益效果是
能够在几乎不动原有代码的前提下实现监控功能。
灵活扩展,能够针对具体场景扩展具体实现对应场景的场景信息存储,服务调用情况监控信息存储。
能够从促使开发人员向代码模块化提升,并能有效推进代码编写者的代码可读性改善。
附图说明
图1是本发明的工作流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本方法基于java平台,依赖于spring生态,使用spring的aop技术代理以门面模式封装的外部系统服务类调用方法(需要将外部系统服务类封装成spring的bean,封装原则是一次方法调用即是一次外部系统服务)。
一般而言,场景的入口都是跳转页面的入口、弹框页面打开的时候、方法执行的开始处。场景的出口与之对应的就是跳离某些页面的点、弹框关闭的时候、方法执行结束的地方。基于如上情况,方法使用显式代码调用、过滤器和aop代理增强的方式完成场景构建点改造。
场景构建的目的在于将场景信息放入共享缓存区,便于触发外部服务调用时获取信息进行服务调用情况记录。根据使用情况不同,可以使用服务器内存、中间件、数据库方式对场景信息进行关联存储。场景的唯一标识可以以使用内存区随机存储的uuid值(单线程应用)、线程id(多线程应用)、tomcat提供的sessionId(分布式多线程应用)或者请求间传递的某一唯一标识参数值来做(需要跨系统场景传递)。
假设在场景顺序执行的过程中,触发了外部系统服务调用,spring代理的aop增强服务会被调用,在这部分能力增强的代码中,可以根据具体需求扩展外部系统服务调用的后置操作(例如:记录调用情况、存储日志等)。
以某市一体化项目的业务场景外部系统服务调用记录模块为例,执行过程如图1所示,
实现约定如下:
1、应用为web应用,使用tomcat为中间件,会话id为客户端会话id;
2、共享区为数据库external_session表,表存储会话id、场景id和场景类型;
3、场景入口由前端js调用后端http接口构建业务场景开始锚点;
4、场景出口同样由前端js调用后端http接口构建场景结束锚点,并在处理完成后销毁external_session表中保留的场景关联信息。
详细过程如下:
1、进入业务办理场景,构建场景开始锚点
前端调用后台接口传递当前sessionId值场景上下文信息,后台接口接收到诸如业务流水号、业务名称等存入数据库,生成记录id作为场景id。将如上sessionId作为会话id、场景id,以及对应的场景类型转换为记录,存入external_session表中。
2、业务开始正常审核,当触发aop横切面方法调用时
aop方法中从当前线程信息中获取sessionId值(此部分由tomcat容器实现,不再赘述),通过sessionId值从external_session表中取得对应的场景id和场景类型。根据场景类型找到对应的处理类,传入场景id和方法执行信息,诸如执行时长、执行类名、方法名等,完成执行记录。
3、业务办理完成后,场景走向出口,发起场景销毁请求
前端调用后台接口,此时会附带上之前一直在使用的sessionId,在所有操作结束后,删除external_session表中对应sessionId值记录。
扩展点接口代码如下:
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (1)
1.一种基于场景的服务监控方法,其特征在于,
依据场景设置方法的调用为起点、场景销毁方法的调用为终点,圈定程序运行范围并在共享区标记一个当前会话唯一标识值;在此过程中,以会话唯一标识为基础,aop横切面配置的方法调用为监控点,记录方法调用情况;最终以会话唯一标识配合场景信息即可串连出完整的场景服务调用过程记录,从而达到服务监控的目的;
所述服务监控方法基于java平台,依赖于spring生态,是使用spring的aop技术代理以门面模式封装的外部系统服务类调用方法;
执行过程如下:
1)、应用为web应用,使用tomcat为中间件,会话id为客户端会话id;
2)、共享区为数据库external_session表,表存储会话id、场景id和场景类型;
3)、场景入口由前端js调用后端http接口构建业务场景开始锚点;
4)、场景出口同样由前端js调用后端http接口构建场景结束锚点,并在处理完成后销毁external_session表中保留的场景关联信息;
详细过程如下:
进入业务办理场景,构建场景开始锚点
前端调用后台接口传递当前sessionId值场景上下文信息,后台接口接收到信息后存入数据库,生成记录id作为场景id;
业务开始正常审核,当触发aop横切面方法调用时
aop方法中从当前线程信息中获取sessionId值,通过sessionId值从external_session表中取得对应的场景id和场景类型;根据场景类型找到对应的处理类,传入场景id和方法执行信息,完成执行记录;
业务办理完成后,场景走向出口,发起场景销毁请求
前端调用后台接口,此时会附带上之前一直在使用的sessionId,在所有操作结束后,删除external_session表中对应sessionId值记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011220441.4A CN112328451B (zh) | 2020-11-05 | 2020-11-05 | 一种基于场景的服务监控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011220441.4A CN112328451B (zh) | 2020-11-05 | 2020-11-05 | 一种基于场景的服务监控方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112328451A CN112328451A (zh) | 2021-02-05 |
CN112328451B true CN112328451B (zh) | 2023-03-17 |
Family
ID=74317029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011220441.4A Active CN112328451B (zh) | 2020-11-05 | 2020-11-05 | 一种基于场景的服务监控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112328451B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7849469B1 (en) * | 2006-01-04 | 2010-12-07 | Emc Corporation | Methods and apparatus providing a categorical approach to aspect-oriented programming |
CN108462750A (zh) * | 2018-03-22 | 2018-08-28 | 平安好房(上海)电子商务有限公司 | 分布式调用追踪方法、业务系统、监控系统及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2425194A (en) * | 2005-04-15 | 2006-10-18 | Exponetic Ltd | Tracking user network activity using a client identifier |
CN107766205B (zh) * | 2017-10-10 | 2019-11-22 | 武汉大学 | 一种面向微服务调用过程跟踪的监控系统及方法 |
CN110780883A (zh) * | 2018-07-30 | 2020-02-11 | 网宿科技股份有限公司 | 方法调用链跟踪方法、电子装置及计算机可读存储介质 |
CN110290212B (zh) * | 2019-06-28 | 2020-06-23 | 浙江大搜车软件技术有限公司 | 服务调用记录方法、装置、计算机设备和存储介质 |
CN111078432B (zh) * | 2019-12-10 | 2024-04-16 | 深圳前海环融联易信息科技服务有限公司 | 一种服务之间调度的追踪方法及装置 |
-
2020
- 2020-11-05 CN CN202011220441.4A patent/CN112328451B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7849469B1 (en) * | 2006-01-04 | 2010-12-07 | Emc Corporation | Methods and apparatus providing a categorical approach to aspect-oriented programming |
CN108462750A (zh) * | 2018-03-22 | 2018-08-28 | 平安好房(上海)电子商务有限公司 | 分布式调用追踪方法、业务系统、监控系统及存储介质 |
Non-Patent Citations (2)
Title |
---|
AOP技术在国库集中支付系统中的应用;眭衍韬;《科技广场》;20070601(第06期);全文 * |
Web服务运行时的监控和性能数据动态采集;张海腾等;《计算机集成制造系统》;20110815(第08期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112328451A (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111752799B (zh) | 一种业务链路跟踪方法、装置、设备及储存介质 | |
RU2419986C2 (ru) | Объединение многострочных протокольных вхождений | |
CN111241125B (zh) | 一种记录操作日志的方法、装置、电子设备和存储介质 | |
CN111400378B (zh) | 基于ElasticSearch的日志实时显示方法、装置、计算机设备和介质 | |
CN113595788B (zh) | 一种基于插件的api网关管理方法及装置 | |
CN110096363A (zh) | 一种网络事件与进程的关联方法及装置 | |
CN105260292A (zh) | 一种日志记录方法、装置及系统 | |
CN112165451B (zh) | Apt攻击分析方法、系统及服务器 | |
CN110941632A (zh) | 一种数据库审计方法、装置及设备 | |
CN110457132B (zh) | 一种功能对象的创建方法、装置和终端设备 | |
CN112328451B (zh) | 一种基于场景的服务监控方法 | |
CN110598419A (zh) | 一种区块链客户端漏洞挖掘方法、装置、设备及存储介质 | |
CN115858320A (zh) | 操作日志记录方法、装置、介质及产品 | |
CN114443925A (zh) | 安卓应用的获取方法、装置、电子设备、介质及产品 | |
CN112825081B (zh) | 录像信息处理方法、装置、电子设备、处理器及可读介质 | |
CN110740151B (zh) | 一种微服务调整方法、装置、服务器及计算机存储介质 | |
CN112153148A (zh) | 基于消息接收端的消息堆积处理方法及装置 | |
CN111414253A (zh) | 垃圾回收GC信息处理方法、Java虚拟机及计算机存储介质 | |
WO2019205202A1 (zh) | 基于大数据的业务逻辑学习、防护方法及学习、防护装置 | |
CN114363221B (zh) | 一种基于微服务系统的心跳检测方法、存储介质、电子设备及系统 | |
CN114745368B (zh) | 文件下载方法、装置、计算机设备和计算机可读存储介质 | |
CN112463828B (zh) | 一种数据处理方法、装置、设备、系统及可读存储介质 | |
CN115203063B (zh) | 基于实时录制的生产流量重跑风险程序的回放方法及系统 | |
CN1092901C (zh) | 一个灵活的呼叫记录机制 | |
CN116737399A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |