網站性能調優實戰-學相伴KuangStudy


面對並發我們是如何優化KuangStudy網站性能的?

每個項目都會隨着用戶和數據的增長調整架構,來面對未來的問題,我們也不例外,在1月5號我們平台正式公測后,引起了很多觀眾的熱烈反響,僅僅4天,注冊用戶便破萬。隨之而來的就是平台開始變得卡頓,所以我們開始了我們的問題排查和優化,下面就和大家聊聊我們是如何處理的吧。

Nginx

一個網站,核心會分為幾部分:前端、后台服務、數據庫,服務器。我們最開始項目是打的jar包 ,一個tomcat支撐不了多少並發,Tomcat 默認配置的最大請求數是 150,也就是說同時支持 150 個並發,當然了,也可以將其改大。但是每次直播的時候,並發會暴增,所以我們只能開始搭建集群。

搭建集群后引入了Nginx做反向代理,負載均衡也解決了,我們根據不同的服務器的性能做了權重,果然增加了Nginx,做了負載之后,網站訪問快了不少。但是又迎來了Session共享的問題,我們將用戶的會話信息放入redis,session共享搞定。接入層搞定了之后,我們發現我們的江湖模塊還是很慢。

慢SQL

我們開始排查日志,發現了一些SQL處理竟然要1.5s左右,簡直受不了。根本問題是我們做了聯表查詢,關聯的表比較多,於是我們開始優化數據庫結構,增加了許多冗余字段,后面江湖首頁,只用查詢一個表了,從蝸速到現在幾乎秒開了。分類我們從數據庫查詢優化到使用靜態數據管理,因為幾乎不會發生變化。同時消息提示的sql還有個人主頁的sql我們也做了相應的處理,所以現在整個網站的響應速度大大提高了。

主從復制、讀寫分離

接入層的問題解決后,我們發現項目的壓力瓶頸轉移到了數據庫上面,開始我們還是單個數據庫,但是用戶的熱情遠遠超出了我們的想象,讀和寫都在一個數據庫,性能完全不太夠用,於是我們又買了一台服務器開始做主從,MySQL的主從還是比較簡單的,幾個命令就搭建好了,然后我們使用了sharding jdbc來做讀寫分離。寫完之后,網站整體的性能都提高了。於是我們發了版,保證了線上運行不卡頓。

信任與責任

連續一周,我們都是凌晨兩三點睡,不斷的優化用戶的建議,讓平台越來越穩定和完善,不過努力都是值得的,用戶越來越多,迎來了眾多年會員的同時,我們也迎來了我們的第一個終身會員,這是信任,這是責任。我不能辜負大家的信任,做更多有意義的事情,做更純凈的社區,做更多的開源組件和更優質的教程來幫助大家,這是我們團隊的使命,也是學相伴的使命。

無論遇到多少的Bug,就像飛哥說的,我們滅了它就完事了!沒有解決不了的問題,這就是屬於我們技術人的底氣!

邀請入駐

如果大家平時有寫文章的愛好,或者已經有了很多筆記,也歡迎大家能夠將自己的文章搬到我們的kuangstudy平台上,提出寶貴的意見,可能我們現在不是最好的,但是我們會努力變成最好的!

以學為伴,一生相伴!

看到了這里,不妨點個喜歡支持我們一下吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM