網站性能調優實戰-學相伴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平臺上,提出寶貴的意見,可能我們現在不是最好的,但是我們會努力變成最好的!

以學爲伴,一生相伴!

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章