交易系統熱點賬戶設計

2021-10-07 15:27:35 字數 1153 閱讀 5151

背景

交易系統中會出現某些賬戶高頻進行扣款入賬的行為。這些賬戶可以分為兩種,一種是出賬熱點賬戶,另外一種使入賬熱點賬戶。單賬戶進行餘額更新會出現各種效能瓶頸、資料庫壓力、成功率等各種效能問題。

目標

通過該設計避免出現熱點賬戶的各種效能問題,及時對賬戶是否使熱點進行監控,分析、避免出現熱點賬戶帶來的一系列問題。

將單個賬戶拆分多個子賬戶。子賬戶使用借鑑商品上下架庫存動態補充。

通過熱點賬戶配置,動態將乙個賬戶拆分為多個子賬戶。尾號0000固定為入賬賬戶,尾號0001固定為出賬大賬戶。整體賬戶出入帳流程如上圖。

1)入賬,獲取尾號0000的賬戶,儲存待處理的入賬明細,儲存成功則表示入賬成功(減少update賬戶餘額操作)。

2)job,通過定時任務,更新尾號0000賬戶的待處理的入賬明細為處理中,彙總處理中入賬總金額,對尾號0000賬戶進行餘額更新,更新完成後將處理中更新為處理完成。

1)小額出賬:隨機獲取熱點賬戶的出賬子賬戶(上架),金額變更採用樂觀鎖餘額》=0來更新賬戶餘額。更新成功則記錄變動明細;更新失敗則更換子賬戶再次進行餘額變更。

2)大額出賬:存在需要出賬餘額大於某個閥值則將賬戶餘額設定為尾號0001的子賬戶進行出賬;如果尾號0001子賬號餘額仍舊不足則觸發強制補錢操作。如下圖

入賬分配:主要對下架賬戶按照設定最小閥值金額的係數進行餘額補充,補充後將賬戶進行上架處理

1)監控下架賬戶並及時告警

7、動態擴容

根據配置獲取對應的子賬號數量,對子賬號的擴容和縮減

交易系統熱點賬戶問題

何為熱點賬戶?熱點賬戶即系統中,被高頻繁地進行資金的進出操作,頻繁出現加鎖解鎖操作的賬戶。比如,b2c系統中的企業虛擬戶,使用者購買商品時,資金從使用者虛擬戶轉到企業虛擬戶 使用者退款時,資金從企業虛擬戶轉到使用者虛擬戶 這時,對企業虛擬戶的資金進出操作就會成為整個業務的瓶頸。1.控制併發數 所有進...

交易系統熱點賬戶問題(一)

目錄 一 熱點賬戶 二 熱點賬戶常見問題 三 純修改餘額方式及其特點 熱點賬戶就是高頻進行扣款 入賬的賬戶,也就是熱點賬戶該條資料為熱點資料,會被頻繁更新。一般熱點賬戶分為兩種,一種是頻繁扣款的熱點賬戶,另外一種是頻繁入賬的熱點賬戶。1 效能瓶頸問題 2 資料庫壓力問題 3 成功率問題 1.樂觀鎖 ...

交易系統的設計原則

系統維度 按照系統功能 業務拆分,比如 商品系統,購物車,結算,訂單系統等。功能維度 對系統進行功能拆分,比如,優惠券系統可以拆分為後台優惠券建立 領劵系統 用捲系統等。讀寫維度 根據讀寫比例進行拆分 讀系統可以用快取提公升效能,寫的量大時,可以考慮分庫分表。aop維度 根據訪問特徵,按照aop進行...