a轉給b100元
兩個關鍵點:
1 a b sql在乙個事務中
2 a轉賬前,先查餘額
開啟事務
lined = update set a.money = a.money-100 where a.money >= 100
if(lined == 0)
return 沒錢
update set b.money = b.money+100
提交事務
看下這段**是否有併發隱患
根據 中的結論:
當前讀(包含update等寫入操作)鎖定資料,直到事務提交
故不涉及到併發一致性問題,但是相當於分布式鎖,悲觀的,效能低
銀行轉賬業務 使用事務
銀行轉賬是是兩個賬戶之間同時進行操作的,一方賬戶資金減少的同時另外一方的資金就要增加同樣的金額。如果一方操作失敗那麼另外一方的操作就不會成功。也即是需要將這樣的兩個操作放在乙個事務當中。只是這裡使用到了層的概念。既然設計到轉賬那麼肯定有乙個賬戶類 dto資料傳輸物件 還有乙個類是專門用來訪問該賬戶的...
MongoDB 比較適用哪些業務場景?
在雲棲社群上發起了乙個 mongodb 使用場景及運維管理問題交流 的技術話題,有近5000人關注了該話題討論,這裡就 mongodb 的使用場景做個簡單的總結,談談什麼場景該用 mongodb?很多人比較關心 mongodb 的適用場景,也有使用者在話題裡分享了自己的業務場景,比如 案例1用在應用...
高併發 秒殺業務場景詳解
一 秒殺場景的特點 秒殺的商品具有 低 庫存有限 定時開始的特點,因此秒殺場景最大的特點就是高併發。數以千萬的使用者的流量集中在某個時間點上 即秒殺開始時 給後端伺服器造成很大壓力,如果不能進行有效削峰 限流,所有請求一次性打到某一台伺服器或資料庫上,必然造成服務的不可用,給使用者造成不良體驗。二 ...