簡體   English   中英

改進屬於多個用戶的普通錢包的授權流程

[英]Improve Authorization flow for common wallet belonging to multiple users

我有一個實現,其中我有一個錢包(每個客戶/公司的錢包)和屬於一個錢包的多個用戶。 我每秒有數百個 API 調用來自用戶的授權。 當我獲得來自用戶的授權 API 調用並完成以下活動時,

  • 鎖定屬於當前用戶的錢包。

  • 確保通過了驗證規則。

  • 錢包有足夠的余額使交易成功。

  • 更新錢包余額。

  • 解鎖屬於當前用戶的錢包。

還有其他計算,以及不同表的更新,總時間可能在 500 到 1000 毫秒之間。

當我們每個錢包的用戶較少且每秒來自用戶的同時呼叫較少(屬於一個錢包)時,這很好用。

如何擴展此架構或更改此實現,以便每秒支持數百個屬於同一個錢包的請求? 問題是當我每秒有很多請求時,因為錢包請求的鎖定將在隊列中並且它們將超時。

我正在閱讀有關基於事件的系統,但這里每個身份驗證調用都是同步 API 調用,所以不確定如何適應基於事件的體系結構。

我可以想到在這種情況下可以嘗試的幾個選項。 為了提高重負載下的並發性,我們可以測試以下內容。

  1. 使用樂觀鎖而不是悲觀鎖。 然后重試失敗的事務或要求最終用戶重試。 參考: https://vladmihalcea.com/optimistic-locking-version-property-jpa-hibernate/
  2. 使用 Akka。 參考: https://akka.io/
  3. 使用 JCTools:MPSC。 參考: https://github.com/JCTools/JCTools

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM