第一篇 概述javascript
1.大型網站架構演化php
1.1 大型網站軟件系統的特色css
高併發,大流量,高可用,海量數據,用戶分佈普遍,網絡狀況複雜,安全環境惡劣,需求快速變動,發佈頻繁,漸進式發展前端
1.2 大型網站架構演化發展歷程java
php+mysql+linux 一臺電腦----->mysql
應用服務器+文件服務器+數據庫服務器----->linux
應用服務器的本地緩存,分佈式緩存----->web
應用服務器的集羣(負載均衡調度服務器)----->算法
數據庫讀寫分離(主從數據庫)----->sql
CDN和反向代理----->
分佈式數據庫+分佈式文件系統(業務分庫)----->
nosql+搜索引擎(統一數據訪問模塊)----->
業務拆分----->
分佈式服務
2.大型網站架構模式
分層,分割,分佈式,(分佈式應用和服務,分佈式靜態資源,分佈式數據和存儲,分佈式計算),集羣,緩存(CDN,反向代理,本地緩存,分佈式緩存),異步(分佈式消息隊列),冗餘,自動化,安全
3.大型網站核心架構要素
性能,可用性,伸縮性,擴展性,安全性
第二篇 架構
4.瞬時響應:網站的高性能架構
4.1 性能測試指標
響應時間,併發數,吞吐量,性能計數器
4.2 性能測試方法
性能測試,負載測試,壓力測試,穩定性測試
4.2 web前端性能優化
a.瀏覽器訪問優化
1.減小http請求,合併css,合併javascript,合併圖片
2.使用瀏覽器緩存 設置http頭中cache-control和expires的屬性
3.啓用壓縮 gzip壓縮
4.css放在頁面最上面,javascript放在最下面
5.減小cookie傳輸
b.CDN加速
c.反向代理
4.3 應用服務器性能優化
1.分佈式緩存
a.JBoss Cache爲表明的須要更新同步
b.Memcached爲表明的不互相通訊 (簡單的通訊協議,豐富的客戶端程序,高性能的網絡通訊,高效的內存管理(lru算法,近期最小使用),互不通訊的服務器集羣架構
2.異步操做 消息隊列異步化調用
3.使用集羣
4.代碼優化
a.多線程 b.資源複用 c.數據結構 d.垃圾回收
4.4 存儲性能優化
機械硬盤 vs 固態硬盤
B+樹 vs LSM樹
RAID vs HDFS
廉價磁盤冗餘陣列
hadoop分佈式文件系統
5.萬無一失:網站的高可用架構
1.session複製
2.session綁定
3.利用cookie記錄session
4.session服務器
高可用的服務:1分級管理 2超時設置 3異步調用 4服務降級 5冪等性設計
高可用的數據:
高可用的網站的軟件質量保證:網站發佈流程:
自動化測試:
網站運行監控:用戶行爲日誌收集,服務器性能監控
6.永無止境:網站的伸縮性架構
負載均衡的算法:輪詢,加權輪詢,隨機,最少鏈接,源地址散列
7.隨需應變: 網站的可擴展架構
事件驅動架構
8.固若金湯:網站的安全架構
消毒,httponly,
sql注入:
消毒,參數綁定
表單token,驗證碼,
文本匹配,分類算法,黑名單
第三篇 案例
9. 淘寶網的架構演化案例分析
10.維基百科的高性能架構設計分析
11.海量分佈式存儲系統Doris的高可用架構設計分析
12.網站秒殺系統架構設計案例分析
秒殺系統獨立部署
秒殺商品界面靜態化
租借秒殺系統網絡帶寬
動態生成隨機下單頁面URL
13.大型網站典型故障案例分析
第四篇 架構師
14.架構師領導藝術
15.網站架構師職場攻略
16.漫話網站架構師