本身簡單總結了一下這方面的東西,語言都比較簡單,主要是爲了看到可以想起來相關內容。
從持久層開始向展示層說:
持久層java
一、存儲選型
存儲器類型(IDE/SCSI/SSD磁盤、網絡存儲NFS等)
數據庫類型(MySql、Oracle、SQLServer等)
二、數據拆分,垂直切分水平切分。垂直切分爲按模塊切分,不一樣模塊劃分到不一樣的存儲單元,緩解單個存儲單元的IO壓力;水平切分爲分佈式數據庫,可按數據的所屬機構切分,減小每一個存儲單元的數據量;
三、讀寫分離
主從模式,1主多從,主寫從讀。讀寫壓力分開,也能夠解決讀寫的鎖衝突等
四、數據庫負載均衡
如OracleRAC
五、raid技術提速冗餘容災
一份數據同時向多塊存儲寫,存儲器實現,對存儲邏輯也是透明的。
六、數據庫調優
數據庫使用的存儲量、內存緩存量、線程數、其餘資源使用量配置。
七、業務表結構優化
表結構合適的拆分,以性能爲目標的制定冗餘信息,數據庫索引優化等
業務層
一、語言機制
資源鏈接池
異步處理
多線程處理
針對java,jvm參數調優
二、通用高效組件
全文檢索nuts、lucene
緩存框架memcache、redis
三、業務代碼優化
語言改進(跨語言遷移方案:拆分模塊、按模塊逐步改進、新舊並行、新替換舊)
邏輯改進 高內聚低耦合
四、中間件負載均衡
集羣、F5等
展示層
一、CDN內容分發網絡
提高不一樣區域訪問速度、解決網站流量限制,下降硬件門檻等
CDN原理
用戶提交域名 ->瀏覽器解析域名 ->CDN-DNS-Server返回CNAME ->瀏覽器對CNAME解析 ->獲得CDNServer的IP ->訪問CDNServer -> CDNServer經過內部DNS緩存返回目的IP ->瀏覽器訪問IP ->瀏覽器解析響應內容
二、頁面架構
不易變內容使用靜態頁面、數據異步加載、頁面緩存
三、頁面內容優化
減少頁面大小
減小零碎小資源文件
應用CSS定製樣式