日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何优化网站?

發布時間:2024/2/28 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何优化网站? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

優化

版本一

系統開始是這樣子的,一個 Tomcat 拖著一個 MySql 服務,跑在一個 2C 4G 的Linux服務器上,所有的請求都走 Tomcat,所有的查詢都走 MySql,看起來像一句廢話?

資源是有限的,那么如何有效的利用資源,提升服務性能?Tomcat 號稱能抗住數十萬并發訪問,但是這事也得分場景,還得有足夠牛逼的機器。

Tomcat 優化

Tomcat支持以下三種模式:

  • BIO:一個線程處理一個請求,缺點:并發量高時,線程數較多,浪費資源,Tomcat7或以下在Linux系統中默認使用這種方式。

  • NIO:利用Java的異步IO處理,可以通過少量的線程處理大量的請求。Tomcat8在Linux系統中默認使用這種方式。Tomcat7 必須修改Connector配置來啟用。

  • APR(Apache Portable Runtime):從操作系統層面解決io阻塞問題。Linux如果安裝了apr和native,Tomcat直接啟動就支持apr。

為了方便易用這里我們選擇NIO模式,小伙伴們直接下載使用 Tomcat8 以上版本即可,連接池什么的一般使用默認的即可。

版本二

可能部分小伙伴知道 Tomcat 容器處理靜態請求的性能力并不強,所以這里需要一款能處理靜態文件請求又超牛逼的服務,這里推薦 Nginx,當然你可以使用其變種 Tengine、OpenResty 才實現動靜分離。

版本三

后端服務鏈接資源是寶貴的,在高并發下,會拖慢整個系統的響應時間。這里我們可以把一些熱點數據進行緩存,后端讀取緩存,如果數據存在則直接返回,否則再去讀取數據庫。

版本四

資源是有限的,但用戶可能是無限的,還可能有一些惡意用戶、爬蟲、熱點搜索。為了大部門用戶可以正常訪問,這里我們使用前置限流,通過令牌桶算法或者漏桶算法實現多樣的限流方案。

版本五

在博客系統中,為了提升響應速度,加入了 Redis 緩存,把文章主鍵 ID 作為 key 值去緩存查詢,如果不存在對應的 value,就去數據庫中查找 。這個時候,如果請求的并發量很大,就會對后端的數據庫服務造成很大的壓力。這里我們使用布隆過濾器對空命中進行攔截處理。

終極版

  • 如果僅僅對于一個博客而已一個Nginx 足夠了,后面可以帶多個Tomcat 做負載均衡進群

  • Nginx 應用層面做限流,后端單個服務可以做接口限流

  • 后端服務用戶 Session 可以集中存儲到 Redsi 中

  • 布隆過濾攔截防止緩存穿透

  • 熱點數據讀取 Redis 緩存

  • 如有必要 Redis 、MySql 可以做主從集群

小結

優化過程可能僅僅是冰山一角,但大體思路差不多就是這個樣子,發現問題然后解決問題,本來架構就是演進而來的。

總結

以上是生活随笔為你收集整理的如何优化网站?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。