1. 程式人生 > >熱點賬戶高併發解決方案

熱點賬戶高併發解決方案

    背景:2018年初,直播答題風靡全國。來的快,去的也快,抖音突然崛起,具有了挑戰微信的實力。

    我司與頭條合作,負責頭條的紅包雨業務。頭條要求,200tps,最後最高達到140tps。

    自此之後,公司開始了賬戶優化。

    此前已經對第三方支付的賬戶進行了詳細的描述。不再贅述。

    賬戶就是餘額加上流水(賬戶明細)。支付行業對資料的錯誤是零容忍的。

    下面直接開始。

    

    資料庫行鎖這裡是你避免不了的。一次事務的時間是9ms的話,你的tps天花板最高就是110

    所以第一招就是 減少事務時間,具體方法就是,減少事務的資料庫操作,講一些不太重要的操作進行分解。

    第二招 優化網路,,其實就是減少了應用到資料庫的交換機,給高併發應用配置資源,沒啥意思,掠過。

    第三招 非同步


    將這三點非同步了,反正流水記錄了,丟不了,有對賬心裡有底。下圖同理


最後的大招,我們知道雖然進行了這些操作,但是對效能沒有達到指數級別的提高。 事務持鎖時間永遠是你的瓶頸。這個就需要變個花樣來打破。  將一個熱點賬戶拆分為多個熱點賬戶。 頭條發紅包的賬戶只有一個,我們將其拆分為三個虛的賬戶,哪一個沒錢了,就銷燬它,這種成本賬戶會監控其餘額,一般不會沒錢的,沒錢就找頭條充值。


當然還有分散式資料庫,這個不是我擅長的掠過。