1.應用,數據,文件分離。
將應用程序,數據庫,文件各自部署在獨立的服務器上,并且根據服務器的用途配置不同的硬件,達到最佳的性能效果。
2.利用緩存改善網站性能。
大部分的網站訪問都遵循28原則,即80%的訪問請求,最終落在20%的數據上,所以我們可以對熱點數據進行緩存,減少熱點數據的訪問路徑,提高用戶體驗。緩存實現的常見方法是本地緩存,分布式緩存,CDN,反向代理。
本地緩存:速度快,空間有限緩存數據量也有限。OSCache
分布式緩存:可緩存海量的數據,拓展非常容易,速度沒有本地緩存快。Memcached, Redis.
反向代理: 請求先訪問反向代理服務器,反向代理服務器先將緩存的數據返回給用戶,沒有緩存的數據才會繼續訪問應用服務器獲取。這樣做減少了獲取數據的成本。Squid, Nginx.
CDN
3.使用集群+負載均衡改善應用服務器性能
應用服務器作為網站的入口,會承擔大量的請求,我們往往通過應用服務器集群來分擔請求數。 應用服務器前面部署負載均衡服務器調度用戶請求,根據分發策略將請求分發到多個應用服務器節點。
4. 數據庫優化
4.1 讀寫分離和分庫分表 隨著用戶量的增加,數據庫成為最大的瓶頸,改善數據庫性能常用的手段是進行讀寫分離以及分庫分表,讀寫分離顧名思義就是將數據庫分為讀庫和寫庫,通過主備功能實現數據同步。分庫分表則分為水平切分和垂直切分,水平切分則是對一個數據庫特大的表進行拆分,例如用戶表。垂直切分則是根據業務的不同來切分,如用戶業務、商品業務相關的表放在不同的數據庫中。
5. 將應用服務器進行業務拆分
隨著業務的擴展,應用程序變得非常臃腫,這時我們需要將應用程序進行業務拆分,如百度分為新聞、網頁、圖片等業務。每個業務應用負責相對獨立的業務運作。業務之間通過消息進行通信或者共享數據庫來實現。
6.使用分布式系統
6.1 分布式文件系統 用戶一天天增加,業務量越來越大,產生的文件越來越多,單臺的文件服務器已經不能滿足需求,這時就需要分布式文件系統的支撐。常用的分布式文件系統有GFS、HDFS、TFS。