目前我們正在Grails 2.4.4上開發信用交易系統。替代對不斷/同時更新的對象的悲觀鎖定
我們有一個信貸模型,用於保存用戶的信用額度。
class Credit {
BigDecimal amount
User user
}
問題是金額是不斷扣除/貸記用戶交易。
我們試圖對其進行悲觀鎖定以保持其完整性。但是我們意識到它是瓶頸交易,因爲該用戶一次只能處理一筆交易。
此任何替代方法?我們可以使用任何設計模式? 我們願意改變模型或採取其他方法。
目前我們正在Grails 2.4.4上開發信用交易系統。替代對不斷/同時更新的對象的悲觀鎖定
我們有一個信貸模型,用於保存用戶的信用額度。
class Credit {
BigDecimal amount
User user
}
問題是金額是不斷扣除/貸記用戶交易。
我們試圖對其進行悲觀鎖定以保持其完整性。但是我們意識到它是瓶頸交易,因爲該用戶一次只能處理一筆交易。
此任何替代方法?我們可以使用任何設計模式? 我們願意改變模型或採取其他方法。
您可以查看事件採購模式。
有很多東西需要了解,但它提供的一個屬性是無鎖定模型。
如果您有興趣,請查找Greg Young和Udi Dahan的視頻。他們談論並教導了很多關於這個話題。
你可以在視頻中提供關於該模式的鏈接嗎?我主要找到cqrs相關的東西。 – froi
http://www.youtube.com/watch?v=8JKjvY4etTY – FireAlkazar
查看事件採購模式。它解決了許多併發事務問題。我能找到的最好的文章是http://coding-time.blogspot.ru/2013/06/transactions-in-real-world.html事件採購部分。 – FireAlkazar
將高度競爭的行更新推遲到事務的最後階段也無濟於事? –
@FireAlkazar我們將交易記錄中的借方/貸方記錄在貸方模式中,因此如果有必要,我們可以稍後將其反轉。但是,我們仍然必須鎖定Credit對象以確保完整性。 – froi