公共日志服务系统设计

简介:本文所提及的公共日志服务主要指的是为部门和公司的其他系统提供一个日志拦截和重要日志查询的基础服务。

应用场景统计各部门各个子系统涉及到数据更新操作的日志,并且能够将日志数据提供给部门的相关人员进行查看。

运用的技术:Spring 拦截器,dubbo 拦截器,mybatis 拦截器,mq,es

技术实现简介:

 一、收集用户信息

       1、http 请求-----统一经Spring拦截拦截处理,获取相应的用户信息,

       2、dubbo 接口,dubbo的话就不能走Spring的拦截器。这里我们先后用过两种方法,第一种是用dubbo 本身提供的RpcContext来透传服务消费者的一些参数,不过这种方式会有一些问题,后面改为 dubbo拦截器,通过ThreadLocal来收集用户信息。

       3、定时任务,一开始也是通过RpcContext来做,不过后面还是改成了 ThreadLocal 来收集用户信息。

 二、后续处理

      请求拦截下来后走 mybatis 拦截器,该拦截器会对不同的数据操作请求进行不同的处理,主要拦截处理的操作有,update,       insert,delete。拦截下来截取相应的sqlsql操作之前的数据库信息,该应用的信息,操作用户的信息。将这些信息组装成一个JSON体,发送到MQ中。再经由MQ的消费者,消费数据,并将数据插入到ES中,然后前端调用http接口进行进行相应的操作(目前只提供模糊搜索分页查询功能,后续可能会接入相应安全和监控等相关的功能)    

系统架构图

详细介绍 ---->见下一篇

相关文章

在网络请求时,总会有各种异常情况出现,我们需要提前处理这...
作者:宇曾背景软件技术的发展历史,从单体的应用,逐渐演进...
hello,大家好呀,我是小楼。最近一个技术群有同学at我,问我...
 一个软件开发人员,工作到了一定的年限(一般是3、4年左右...
当一个服务调用另一个远程服务出现错误时的外观Dubbo提供了多...
最近在看阿里开源RPC框架Dubbo的源码,顺带梳理了一下其中用...