1. 程式人生 > >秒殺事務高併發問題

秒殺事務高併發問題

高併發優化

  本身Mysql資料處理事務能力並沒有問題,一條update壓力測試約4wQPS(同一個id執行update),那麼在java控制事務的時

就會變成一個序列結構,會造成大量的阻塞操作,那麼下面對這些等待分析原因:

        主要瓶頸是在客戶端執行update時,傳送sql語句到資料庫,期間會有網路延遲*GC*(jvm垃圾回收機制)操作,這兩個是主要問題,

    當這個邏輯執行完之後才會繼續執行下一個事務,由於網路延遲和GC的存在,造成java和資料庫之間的資料執行時間長,如果這個時間是兩毫秒,那麼一秒才能有500次的減庫存行為,這個次數在熱點事件中是遠遠不夠的。

    那麼我們優化的方向是如何減少行級鎖的持有時間,也就是減少單個數據的執行時間。

    答:把客戶端邏輯放在Mysql服務端。整個事務在Mysql端完成。