一种基于微服务架构分布式操作日志实现系统技术方案

技术编号:24409638 阅读:271 留言:0更新日期:2020-06-06 08:37
本发明专利技术公开了一种基于微服务架构分布式操作日志实现系统,所述系统由日志采集模块、日志封装模块、日志缓存模块、日志发送模块、日志接收模块、日志存储模块、和日志查询模块依次连接组成。本发明专利技术一种基于微服务架构分布式操作日志实现系统实现了日志操作功能的抽象与剥离,通过组件的方式统一维护,方便且易于扩展;减少了工程的冗余代码,将操作日志的处理,从业务中解放出来,方便代码维护。

A distributed operation log implementation system based on microservice architecture

【技术实现步骤摘要】
一种基于微服务架构分布式操作日志实现系统
本专利技术属于计算机
,涉及一种基于微服务架构分布式操作日志实现系统。
技术介绍
操作日志不同于系统日志,操作日志面向的是运营人员,记录的内容主要是WEB端的操作记录,为系统运维提供管理依据。当前微服务架构下开发的工程数量成倍增长,操作日志的记录操作又分散在各项目中,如何将操作日志能力进行抽象提炼,优化操作日志编写习惯,方便操作日志记录与收集,提供公共API接口能力,减小代码耦合,提高接口的可靠性与性能等问题成为焦点。目前项目中的操作日志代码相互独立,数据模型不统一,数据存储结构不统一,代码冗余,没有固定的日志模板,日志存储代码与业务代码串行工作,相互影响,并影响接口性能。因此,需要提供一种一种基于微服务架构分布式操作日志实现系统。
技术实现思路
为了克服现有技术中的缺陷,提供一种基于微服务架构分布式操作日志实现系统及方法。本专利技术通过下述方案实现:一种基于微服务架构分布式操作日志实现系统,所述系统包括:日志采集模块,用于采集和抓取客户端的日志信息;日志封装模块,用于将所述日志采集模块采集的碎片化日志信息,按照日志模板封装成统一操作日志;日志缓存模块,用于将所述操作日志进行缓存,等待操作日志发送;日志发送模块,用于将所述日志缓存模块缓存的操作日志发送给服务端;日志接收模块,用于接收客户端的操作日志;日志存储模块,用于对所述日志接收模块接收到的操作日志进行保存;日志查询模块,用于向客户端提供查询操作日志,并导出操作日志记录。所述日志采集模块安装于客户端,所述日志采集模块采集的日志信息包括操作模块、操作类型、执行结果、标题和操作数据中的一种或数种。所述日志封装模块通过客户端携带的账号信息查找与所述账号信息对应的日志信息。所述日志模板实现固定参数信息的串连拼接。所述日志缓存模块用于针对所述日志封装模块生成的操作日志,按照生成时间缓存。所述日志发送模块将所述日志缓存模块缓存的操作日志初始化异步线程池,循环获取日志消息进行异步发送操作日志到服务端。所述日志接收模块通过搭建操作日志服务端集群环境,统一接收指定客户端的日志消息。所述日志存储模块使用雪花算法生成操作日志的ID,并将操作日志记录保存到数据库中。所述日志查询模块通过服务端提供日志管理后台页面,按时间、模块、类型、操作人员等维度导出操作日志。本专利技术方法的有益效果为:本专利技术一种基于微服务架构分布式操作日志实现系统实现了日志操作功能的抽象与剥离,通过组件的方式统一维护,方便且易于扩展;减少了工程的冗余代码,将操作日志的处理,从业务中解放出来,方便代码维护;采用了异步消息中间件,减少系统开销,提高了接口响应性能;操作日志的文本内容统一规范,统一约束定义,并可统一更换日志模板;操作日志保存结构统一,利于日志的存储与统计,数据库类型也可动态切换,业务系统无感知;提供了统一的日志管理后台与API,并提供导出能力,方便日志管理,以及第三方数据查询。附图说明图1为本专利技术一种基于微服务架构分布式操作日志实现系统的流程框图;图2为本专利技术一种基于微服务架构分布式操作日志实现系统中日志采集模块的流程框图;图3为本专利技术一种基于微服务架构分布式操作日志实现系统中日志封装模块的流程框图。具体实施方式下面结合具体实施例对本专利技术进一步说明:如图1所示,一种基于微服务架构分布式操作日志实现系统,所述系统包括:日志采集模块,用于采集和抓取客户端的日志信息;日志封装模块,用于将所述日志采集模块采集的碎片化日志信息,按照日志模板封装成统一操作日志;日志缓存模块,用于将所述操作日志进行缓存,等待操作日志发送;日志发送模块,用于将所述日志缓存模块缓存的操作日志发送给服务端;日志接收模块,用于接收客户端的操作日志;日志存储模块,用于对所述日志接收模块接收到的操作日志进行保存;日志查询模块,用于向客户端提供查询操作日志,并导出操作日志记录。本专利技术系统由日志采集模块、日志封装模块、日志缓存模块、日志发送模块、日志接收模块、日志存储模块、和日志查询模块依次连接。所述日志采集模块安装于客户端,所述日志采集模块采集的日志信息包括操作模块、操作类型、执行结果、标题和操作数据中的一种或数种。如图2所示,日志采集模块具体工作流程如下:(1)实现系统中日志采集模块安装在客户端内的集成日志组件通过java的jar包方式提供。(2)启动实现系统。(3)日志组件初始化RabbitMQ消息中间件,使用RabbitMQ做为日志的收发组件,管理日志消息的发布/订阅。(4)实现系统在完成业务操作后,调用日志组件API,进行日志记录操作。API提供了业务日志的基本抽象能力,包含:操作模块、操作类型、执行结果(1成功,2错误)、标题(例如:新增设备)、操作数据。其中,操作模块严格按照解决方案/工程类型/业务模块进行动态扩展定义统一编码,识别性高。操作类型进行枚举值强约束,明确定义操作的类型及含义,减少研发人员的随意定义。API调用分为两种方式:一种是手动调用,所有业务参数均通过API接口参数进行指定,特点是灵活性高,适用于任何情况下的调用场景;一种是通过注解,在业务层类代码中加入注解,实现部分日志参数通过切面统一获取,特点是减少日志参数的重复配置。所述日志封装模块通过客户端携带的账号信息查找与所述账号信息对应的日志信息。所述日志模板实现固定参数信息的串连拼接。如图3所示,日志封装模块具体工作流程如下:(1)获取用户信息:通过获取HTTP请求的token信息,向用户心发起鉴权,当鉴权成功后返回用户的信息,进而拿到用户的账号信息。(2)获取IP信息:通过HTTP请求协议,调用HttpServletRequest的API获取对方的真实IP信息。(3)获取系统信息:通过读取配置文件方式获取当前工程的系统名称。(4)获取模块:通过参数获取或通过注解获取。(5)操作类型:通过参数获取或通过注解获取。(6)获取请求URL:调用HttpServletRequest的API获取。(7)获取方法:通过JAVA反射获取方法信息。(8)调用日志模板:日志模板实现固定参数信息的串连拼接。针对不同的操作对象封装出不同的日志详情。当日志参数为单条记录的修改,则调用单记录模板封装;对批量修改,则调用多记录模板循环拼装。所述日志缓存模块用于针对所述日志封装模块生成的操作日志,按照生成时间缓存。日志缓存模块具体工作流程如下:(1)消息队列采用Java先入先出(FIFO)队列,对日志消息进行缓存消峰处理。(2)判断当前RabbitMQ连接可用则检查是否生成日志文件,如果有生成日志文件,则优先消费文件中的日志队列,当消费完成后清理文件,设置日志保存文件标识为关。最本文档来自技高网...

【技术保护点】
1.一种基于微服务架构分布式操作日志实现系统,其特征在于,所述系统包括:/n日志采集模块,用于采集和抓取客户端的日志信息;/n日志封装模块,用于将所述日志采集模块采集的碎片化日志信息,按照日志模板封装成统一操作日志;/n日志缓存模块,用于将所述操作日志进行缓存,等待操作日志发送;/n日志发送模块,用于将所述日志缓存模块缓存的操作日志发送给服务端;/n日志接收模块,用于接收客户端的操作日志;/n日志存储模块,用于对所述日志接收模块接收到的操作日志进行保存;/n日志查询模块,用于向客户端提供查询操作日志,并导出操作日志记录。/n

【技术特征摘要】
1.一种基于微服务架构分布式操作日志实现系统,其特征在于,所述系统包括:
日志采集模块,用于采集和抓取客户端的日志信息;
日志封装模块,用于将所述日志采集模块采集的碎片化日志信息,按照日志模板封装成统一操作日志;
日志缓存模块,用于将所述操作日志进行缓存,等待操作日志发送;
日志发送模块,用于将所述日志缓存模块缓存的操作日志发送给服务端;
日志接收模块,用于接收客户端的操作日志;
日志存储模块,用于对所述日志接收模块接收到的操作日志进行保存;
日志查询模块,用于向客户端提供查询操作日志,并导出操作日志记录。


2.根据权利要求1所述的一种基于微服务架构分布式操作日志实现系统,其特征在于:所述日志采集模块安装于客户端,所述日志采集模块采集的日志信息包括操作模块、操作类型、执行结果、标题和操作数据中的一种或数种。


3.根据权利要求1所述的一种基于微服务架构分布式操作日志实现系统,其特征在于:所述日志封装模块通过客户端携带的账号信息查找与所述账号信息对应的日志信息。


4.根据权利要求1所述的一种基于微服务架构分...

【专利技术属性】
技术研发人员:杨闯
申请(专利权)人:深圳市同洲电子股份有限公司
类型:发明
国别省市:广东;44

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

1