单位网站的作用,沙井营销型网站建设,WordPress是静态吗,网站开发结构操作日志
现在大部分公司一般使用SpringCloud这条技术栈#xff0c;操作日志通过网关Gateway提供的Globalfilter统一拦截请求解析请求是比较好的选选择。
优点#xff1a;相对于传统的过滤器、拦截器同步阻塞方案#xff0c;SpringCloud Gateway使用的Webflux中的reactor-…操作日志
现在大部分公司一般使用SpringCloud这条技术栈操作日志通过网关Gateway提供的Globalfilter统一拦截请求解析请求是比较好的选选择。
优点相对于传统的过滤器、拦截器同步阻塞方案SpringCloud Gateway使用的Webflux中的reactor-netty响应式编程组件底层使用了Netty通讯框架提高了性能。
缺点请求的解析与传统过滤器、拦截器有所不同特别是获取请求参数与响应参数这块。
具体方案在Globalfilter初始化时将需要拦截的路径加载到内存当中解析请求和响应后构建日志实体通过mq发送到消息队列再通过mq监听器将数据落库。拦截路径和一些描述信息可配合swagger api来配置。
虽然请求和响应是异步但是经过实践一个Globalfilter就可以完成请求与响应参数的解析。思路是在请求时请求头解析和设置参数响应时构建日志实体发送mq。
细节补充注意请求头中直接设置中文会乱码需要在网关编码和使用的地方解码。请求和响应流是一次性的获取后需要重新构建可自行搜索方案。响应流处理有不同方式区别在于适用大量数据还是少量数据的返回大量数据这种方式会对DataBuffer进行拼接可避免少量中文乱码问题。
审计日志
审计日志与使用的数据持久层框架有关如果使用mybatis就可以通过mybatis拦截器来实现。方案是解析查询语句将审计变更前数据缓存到redis并根据登录token过期时长设置过期时间。拦截修改、逻辑删除等入参以及sql语句通过入参及sql语句解析去redis拿到变更前以及参数中变更后的数据生成审计日志实体发送到mq指定队列再通过mq监听消息落库。
优点相对传统的注解解析方案基本无业务侵入并且数据库压力减小无需查询变更前数据。
缺点审计粒度不够对于关联id、状态字段这种如果需要审计仍需定制化一些逻辑。风险稍高mybatis拦截器会对整个系统的sql进行了拦截解析sql以及参数等需要谨慎实现。对于Mapper.xml定义的一些复杂的查询不好处理。
细节补充页面增、删、改基本是在查询后操作这是方案可行的根本原因。审计字段来源为自己配置存储方案自己选择可在mybatis拦截器初始化是放到内存中格式为系统标识-表名-字段名-id数据。对于新增、删除这种如果要审计直接去redis拿数据即可。逻辑删除这种只有id参数的通过sql解析出表名扫描映射实体的包获取字段信息通过当前系统、表名、字段名、id信息再去redis拿数据即可。
具体代码实现暂不便透露。