導航:首頁 > 數據處理 > 多線程如何保持數據一致性

多線程如何保持數據一致性

發布時間:2024-04-19 15:31:29

『壹』 雙十一是怎麼保證高並發,分布式系統中,數據一致性

前言 在系統開發過程中,經常遇到數據重復插入、重復更新、消息重發發送等等問題,因為應用系統的復雜邏輯以及網路交互存在的不確定性,會導致這一重復現象,但是有些邏輯是需要有冪等特性的,否則造成的後果會比較嚴重,例如訂單重復創建,這時候帶來的問題可是非同一般啊。 什麼是系統的冪等性 冪等是數據中得一個概念,表示N次變換和1次變換的結果相同。 高並發的系統如何保證冪等性? 1.查詢 查詢的API,可以說是天然的冪等性,因為你查詢一次和查詢兩次,對於系統來講,沒有任何數據的變更,所以,查詢一次和查詢多次一樣的。 2.MVCC方案 多版本並發控制,update with condition,更新帶條件,這也是在系統設計的時候,合理的選擇樂觀鎖,通過version或者其他條件,來做樂觀鎖,這樣保證更新及時在並發的情況下,也不會有太大的問題。 例如:update table_xxx set name=#name#,version=version+1 where version=#version# ,或者是 update table_xxx set quality=quality-#subQuality# where quality-#subQuality# >= 0 。 3.單獨的去重表 如果涉及到的去重的地方特別多,例如ERP系統中有各種各樣的業務單據,每一種業務單據都需要去重,這時候,可以單獨搞一張去重表,在插入數據的時候,插入去重表,利用資料庫的唯一索引特性,保證唯一的邏輯。 4.分布式鎖 還是拿插入數據的例子,如果是分布是系統,構建唯一索引比較困難,例如唯一性的欄位沒法確定,這時候可以引入分布式鎖,通過第三方的系統,在業務系統插入數據或者更新數據,獲取分布式鎖,然後做操作,之後釋放鎖,這樣其實是把多線程並發的鎖的思路,引入多多個系統,也就是分布式系統中得解決思路。 5.刪除數據 刪除數據,僅僅第一次刪除是真正的操作數據,第二次甚至第三次刪除,直接返回成功,這樣保證了冪等。 6.插入數據的唯一索引 插入數據的唯一性,可以通過業務主鍵來進行約束,例如一個特定的業務場景,三個欄位肯定確定唯一性,那麼,可以在資料庫表添加唯一索引來進行標示。 這里有一個場景,API層面的冪等,例如提交數據,如何控制重復提交,這里可以在提交數據的form表單或者客戶端軟體,增加一個唯一標示,然後服務端,根據這個UUID來進行去重,這樣就能比較好的做到API層面的唯一標識。 7.狀態機冪等 在設計單據相關的業務,或者是任務相關的業務,肯定會涉及到狀態機,就是業務單據上面有個狀態,狀態在不同的情況下會發生變更,一般情況下存在有限狀態機,這時候,如果狀態機已經處於下一個狀態,這時候來了一個上一個狀態的變更,理論上是不能夠變更的,這樣的話,保證了有限狀態機的冪等。 以上就是高並發系統數據冪等的解決方案的資料整理,後續繼續補充相關知識,謝謝大家對本站的支持!

『貳』 多線程分布式的應用,如何保證事務的一致性

1、 在每個節點上使用單獨的事務,只實現弱一致性。
2、 使用2PC保證強一致性。即分布式事務協調者先要求所有參與節點PREPARE,大家都說PREPARE成功後,再要求所有節點COMMIT。只要有一個節點PREPARE不成功,大家都要回滾。這樣參與者要強制寫兩次日誌,協調者在決定要COMMIT時也要強制寫一次日誌。

閱讀全文

與多線程如何保持數據一致性相關的資料

熱點內容
湖人怎麼交易走威少 瀏覽:618
正規代理平台哪個好 瀏覽:131
數控技術用於鐵道局的工資怎麼樣 瀏覽:978
線上購物代理需要哪些手續 瀏覽:268
技術規范去哪裡買 瀏覽:728
登錄界面如何與資料庫進行交互 瀏覽:438
場內基金是些什麼人在交易 瀏覽:239
米9se用什麼數據線 瀏覽:297
花卉市場有哪些產品形式 瀏覽:389
為什麼現金分紅下個交易日才生效 瀏覽:240
青島哪個海鮮市場附近啤酒屋多 瀏覽:895
招聘老師考核哪些內容程序要多久 瀏覽:761
長形胚囊的數據是多少 瀏覽:608
福建眼霜加盟代理費用多少 瀏覽:135
開直播需要怎麼在電腦後台看數據 瀏覽:222
代理記賬在國標行業屬於什麼 瀏覽:938
期末如何算產品成本 瀏覽:967
大眾刷程序有什麼好處 瀏覽:221
千牛怎麼看產品客群 瀏覽:347
小程序如何讓老賴還錢 瀏覽:532