2

目前我們正在Grails 2.4.4上開發信用交易系統。替代對不斷/同時更新的對象的悲觀鎖定

我們有一個信貸模型,用於保存用戶的信用額度。

class Credit { 
    BigDecimal amount 
    User user 
} 

問題是金額是不斷扣除/貸記用戶交易。

我們試圖對其進行悲觀鎖定以保持其完整性。但是我們意識到它是瓶頸交易,因爲該用戶一次只能處理一筆交易。

此任何替代方法?我們可以使用任何設計模式? 我們願意改變模型或採取其他方法。

+1

查看事件採購模式。它解決了許多併發事務問題。我能找到的最好的文章是http://coding-time.blogspot.ru/2013/06/transactions-in-real-world.html事件採購部分。 – FireAlkazar

+1

將高度競爭的行更新推遲到事務的最後階段也無濟於事? –

+0

@FireAlkazar我們將交易記錄中的借方/貸方記錄在貸方模式中,因此如果有必要,我們可以稍後將其反轉。但是,我們仍然必須鎖定Credit對象以確保完整性。 – froi

回答

0

您可以查看事件採購模式。
有很多東西需要了解,但它提供的一個屬性是無鎖定模型。
如果您有興趣,請查找Greg Young和Udi Dahan的視頻。他們談論並教導了很多關於這個話題。

+0

你可以在視頻中提供關於該模式的鏈接嗎?我主要找到cqrs相關的東西。 – froi

+0

http://www.youtube.com/watch?v=8JKjvY4etTY – FireAlkazar