IO優(yōu)化
1霹肝、緩存申钩、緩沖技術(shù)
2、數(shù)據(jù)組織結(jié)構(gòu)優(yōu)化
3始锚、應用合理的RAID策略提升磁盤I/O刽酱。
WEB前端調(diào)優(yōu)
減少網(wǎng)絡交互的次數(shù)(多次請求合并)
減少網(wǎng)絡傳輸數(shù)據(jù)量的大小(壓縮)
盡量減少編碼(盡量提前將字符轉(zhuǎn)化為字節(jié),或者減少從字符到字節(jié)的轉(zhuǎn)化過程瞧捌。)
使用瀏覽器緩存
減少Cookie傳輸
合理布局頁面
使用頁面壓縮
延遲加載頁面
CSS在最上面棵里,JS在最下面
CDN
反向代理
頁面靜態(tài)化
異地部署
服務降級(自動優(yōu)雅降級)
拒絕服務和關(guān)閉服務
冪等性設計
(注:冪等性是系統(tǒng)的接口對外一種承諾(而不是實現(xiàn)), 承諾只要調(diào)用接口成功, 外部多次調(diào)用對系統(tǒng)的影響是一致的. 聲明為冪等的接口會認為外部調(diào)用失敗是常態(tài), 并且失敗之后必然會有重試.)
失效轉(zhuǎn)移
若數(shù)據(jù)服務器集群中任何一臺服務器宕機,那么應用程序針對這臺服務器的所有讀寫操作都需要重新路由到其他服務器察郁,保證數(shù)據(jù)訪問不會失敗衍慎,這個過程叫失效轉(zhuǎn)移。
失效轉(zhuǎn)移包括:失效確認(心跳檢測和應用程序訪問失敗報告)皮钠、訪問轉(zhuǎn)移稳捆、數(shù)據(jù)恢復。
失效轉(zhuǎn)移保證當一個數(shù)據(jù)副本不可訪問時麦轰,可以快速切換訪問數(shù)據(jù)的其他副本乔夯,保證系統(tǒng)可用砖织。
性能優(yōu)化
根據(jù)網(wǎng)站分層架構(gòu),性能優(yōu)化可分為:web前端性能優(yōu)化、應用服務器性能優(yōu)化末荐、存儲服務器性能優(yōu)化侧纯。
- web前端性能優(yōu)化
瀏覽器訪問優(yōu)化:減少http請求;使用瀏覽器緩存;啟用壓縮;css放在頁面最上面、javaScript放在頁面最下面;減少Cookie傳輸
CDN加速
反向代理
- 應用服務器性能優(yōu)化
分布式緩存(Redis等)
異步操作(消息隊列)
使用集群(負載均衡)
代碼優(yōu)化
- 存儲性能優(yōu)化
機械硬盤vs固態(tài)硬盤
B+樹 vs LSM樹
RAID vs HDFS
代碼優(yōu)化
多線程
(Q:怎么確保線程安全甲脏?:某些類是線程安全的眶熬,某些不是線程安全的,非線程安全的類在多線程實現(xiàn)中要考慮線程同步块请。無鎖機制有哪些娜氏?:synchronized是最簡單的一種實現(xiàn)線程安全的機制,但是開銷很大墩新,線程從運行態(tài)到阻塞狀態(tài)贸弥,需要從用戶態(tài)到內(nèi)核態(tài),也就是上下文切換海渊;)
資源復用
單例模式绵疲、線程池、連接池
數(shù)據(jù)結(jié)構(gòu)
垃圾回收
負載均衡算法
輪詢 Round Robin
加強輪詢 Weight Round Robin
隨機 Random
加強隨機 Weight Random
最少連接 Least Connections
加強最少連接
源地址散列 Hash
15. 流控(流量控制)
流量丟棄
通過單機內(nèi)存隊列來進行有限的等待臣疑,直接丟棄用戶請求的處理方式顯得簡單而粗暴盔憨,并且如果是I/O密集型應用(包括網(wǎng)絡I/O和磁盤I/O),瓶頸一般不再CPU和內(nèi)存朝捆。因此般渡,適當?shù)牡却饶軌蛱嫔碛脩趔w驗芙盘,又能夠提高資源利用率驯用。
通過分布式消息隊列來將用戶的請求異步化。