冪等就是多次重複提交執行與一次提交執行的結果影響一樣
在高併發的環境下,很頻繁就觸發多次請求:1.前端頁面多次提交 2.網路重發、系統bug重試、nginx重發3.乙個業務請求只對應乙個訂單號
1.select+update:在update操作之前先執行select查詢操作,適用併發不多的場景
2.悲觀鎖:通常與事務放在一起 select * from tablename where id=# id一定是主鍵或者是唯一索引,這樣是行鎖,不然就是表鎖
3.樂觀鎖:通常在資料更新的時候加鎖,有兩種常見實現
a.通過版本號實現
b.通過條件判斷實現
4.token+redis機制
5.分布式鎖:唯一索引在分布式環境不適用
6.對外提供的第三方介面:通過加source+seqid作為唯一索引判斷是要要執行
高併發系統資料冪等性
在系統開發過程中,經常遇到資料重複插入 重複更新 訊息重發傳送等等問題,因為應用系統的複雜邏輯以及網路互動存在的不確定性,會導致這一重複現象,但是有些邏輯是需要有冪等特性的,否則造成的後果會比較嚴重,例如訂單重複建立,這時候帶來的問題可是非同一般啊。一 系統的冪等性 冪等是資料中得乙個概念,表示n次...
高併發系統資料冪等性
在系統開發過程中,經常遇到資料重複插入 重複更新 訊息重發傳送等等問題,因為應用系統的複雜邏輯以及網路互動存在的不確定性,會導致這一重複現象,但是有些邏輯是需要有冪等特性的,否則造成的後果會比較嚴重,例如訂單重複建立,這時候帶來的問題可是非同一般啊。一 系統的冪等性 冪等是資料中得乙個概念,表示n次...
高併發情況下如何保證冪等性?
冪等性這個概念已經說爛了,就是不管你多少次執行多少次,產生的效果和返回的結果都是一樣的。1,select操作 在資料不變的情況下,select操作多次查詢到的結果都是冪等的。2.刪除操作 刪除語句內容不變的情況下,刪除多次的結果也是一樣的。但是得到返回值不是一樣的。3.唯一索引。為了新增讀髒資料。比...