java并发访问重复请求过滤问题-创新互联

问题描述

网站设计制作过程拒绝使用模板建站;使用PHP+MYSQL原生开发可交付网站源代码;符合网站优化排名的后台管理系统;成都做网站、网站建设、外贸营销网站建设收费合理;免费进行网站备案等企业网站建设一条龙服务.我们是一家持续稳定运营了10多年的成都创新互联公司网站建设公司。

前段时间遇到个问题,自己内部系统调用出现重复请求导致数据混乱。


发生条件:接受到一个请求,该请求没有执行完成又接受到相同请求,导致数据错误(如果是前一个请求执行完成,马上又接受相同请求不会有问题)


问题分析:是由于数据库的脏读导致


问题解决思路


1.加一把大大的锁 (是最简单的实现方式,但是性能堪忧,而且会阻塞请求)


2.实现请求拦截 (可以共用,但是怎么去实现却是一个问题,怎么用一个优雅的方式实现,并且方便复用)


3.修改实现 (会对原有代码做改动,存在风险,最主要的是不能共用)


最终实现方式


通过注解+spring AOP 的方式实现


使用


通过在任意方法上添加注解NotDuplicate


类1:

import static java.lang.annotation.ElementType.METHOD;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface NotDuplicate {
}

文章名称:java并发访问重复请求过滤问题-创新互联
分享链接:http://azwzsj.com/article/isgde.html