熱點賬戶高併發解決方案
阿新 • • 發佈:2018-12-30
背景:2018年初,直播答題風靡全國。來的快,去的也快,抖音突然崛起,具有了挑戰微信的實力。
我司與頭條合作,負責頭條的紅包雨業務。頭條要求,200tps,最後最高達到140tps。
自此之後,公司開始了賬戶優化。
此前已經對第三方支付的賬戶進行了詳細的描述。不再贅述。
賬戶就是餘額加上流水(賬戶明細)。支付行業對資料的錯誤是零容忍的。
下面直接開始。
資料庫行鎖這裡是你避免不了的。一次事務的時間是9ms的話,你的tps天花板最高就是110
所以第一招就是 減少事務時間,具體方法就是,減少事務的資料庫操作,講一些不太重要的操作進行分解。
第二招 優化網路,,其實就是減少了應用到資料庫的交換機,給高併發應用配置資源,沒啥意思,掠過。
第三招 非同步
將這三點非同步了,反正流水記錄了,丟不了,有對賬心裡有底。下圖同理
最後的大招,我們知道雖然進行了這些操作,但是對效能沒有達到指數級別的提高。 事務持鎖時間永遠是你的瓶頸。這個就需要變個花樣來打破。 將一個熱點賬戶拆分為多個熱點賬戶。 頭條發紅包的賬戶只有一個,我們將其拆分為三個虛的賬戶,哪一個沒錢了,就銷燬它,這種成本賬戶會監控其餘額,一般不會沒錢的,沒錢就找頭條充值。
當然還有分散式資料庫,這個不是我擅長的掠過。