問題描述
網站設計制作過程拒絕使用模板建站;使用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并發訪問重復請求過濾問題-創新互聯
鏈接URL:http://vcdvsql.cn/article14/isgde.html
成都網站建設公司_創新互聯,為您提供移動網站建設、網站策劃、品牌網站制作、面包屑導航、電子商務、微信公眾號
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯