第四章 瞬時響應:網站的高性能架構
網站性能是客觀指標,也是主觀感受;網站性能測試
性能測試是性能優化的前提和基礎,也是性能優化結果的檢查和度量指標;
-
不同視角下的網站性能:用戶視角(優化手段:優化頁面HTML樣式、利用瀏覽器端的并發和異步特性、調整瀏覽器的緩存策略、使用CND服務、反向代理等);開發人員(關注響應延遲、系統吞吐量、并發處理能力、系統穩定性;優化手段:使用緩存加速數據讀取、使用集群提高系統吞吐能力、使用異步消息加快請求響應以及削峰、代碼優化);運維人員(關注基礎設施性能和資源利用率,如網絡運營商的帶寬能力、服務器硬件配置、數據中心網絡架構、服務器和網絡帶寬的資源利用率等,優化手段:建設優化骨干網、使用高性價比定制服務器、使用虛擬化技術優化資源利用率等)
-
性能測試指標:開發人員的視角:響應時間(重復請求取均值)、并發數(系統能夠同時處理的請求的數量)、吞吐量(單位時間內系統處理的請求數量;TPS:每秒事務數;HPS:每秒HTTP請求數;QPS:每秒查詢數)、性能計數器(指標:System Load、對象與線程數、內存使用、CPU使用、磁盤與網絡IO等)
-
性能測試方法:性能測試、負載測試、壓力測試、穩定性測試
-
性能測試報告
-
性能優化策略:性能分析進而性能優化
-
瀏覽器訪問優化:減少HTTP請求(合并CSS,合并JS、合并圖片);使用瀏覽器緩存(將CSS、JS、圖標等靜態文件緩存在瀏覽器中。更新靜態資源時,采用批量更新的方法);啟用壓縮(在服務器端對文件進行壓縮,在瀏覽器端對文件解壓縮);CSS放在頁面最上面,JS放在頁面最下面;減少Cookie傳輸;
-
CDN加速,CDN可以最短路徑返回響應;緩存靜態資源;
-
反向代理
-
分布式緩存
-
異步操作
-
使用集群
-
代碼優化
-
機械硬盤vs.固態硬盤,機械硬盤快速順序讀寫、慢速隨機讀寫;連續訪問(數據存儲在連續的磁盤空間上),隨機訪問(數據存儲在不連續的磁盤空間)
-
b+樹vs.LSM樹,為了改善數據訪問特性,文件系統或者數據庫系統通常會對數據排序后再存儲,加快數據檢索速度,
-
RAIDvs.HDFS
想要解決高并發的問題,肯定會導致低并發的時候有一定性能的影響。用戶體驗的快或是慢,可以通過技術手段改善,也可以通過優化交互體驗改善。
第五章 萬無一失:網站的高可用架構
一、網站可用性的度量與考核-
網站可用性度量
-
網站可用性考核
(1)高可用的應用
-
通過負載均衡進行無狀態服務的失效轉移:不能管理好session
-
應用服務器集群的Session管理:session服務器。分為無狀態的應用服務器和有狀態的Session服務器
(3)高可用的數據
-
CAP原理
-
數據備份
-
失效轉移
(4)高可用網站的軟件質量保證
-
網站發布
-
自動化測試
-
預發布驗證
-
代碼控制
-
自動化發布
-
灰度發布
(5)網站運行監控
-
監控數據采集
-
監控管理
第六章 永無止境:網站的伸縮性架構
網站架構的伸縮性設計
-
不同功能進行物理分離實現伸縮:比如流程上的不同部分,數據庫、緩存、基礎技術等
-
單一功能通過集群規模實現伸縮
應用服務器集群的伸縮性設計
-
HTTP重定向負載均衡:優點是比較簡單。缺點是瀏覽器需要兩次請求服務器才能完成一次訪問,性能較差
-
DNS域名解析負載均衡:大型網站總是部分使用DNS域名解析,利用域名解析作為第一級負載均衡手段。
-
反向代理負載均衡
-
IP負載均衡
-
數據鏈路層負載均衡
-
負載均衡算法:輪詢,加權輪詢,隨機,最少連接,源地址散列。
分布式緩存集群的伸縮性設計
-
Memcached分布式緩存集群的訪問模型
-
Memcached分布式緩存集群的伸縮性挑戰
-
分布式緩存的一致性Hash算法
.數據存儲服務器集群的伸縮性設計
-
關系數據庫集群的伸縮性設計
-
NoSQL數據庫的伸縮性設計:HBase為可伸縮海量數據儲存而設計,實現面向在線業務的實時數據訪問延遲。
浙公網安備 33010602011771號