一 概述web
1.大型網站構架技術的核心價值是隨着網站所需靈活應對算法
2.驅動大型網站技術發展的主要力量是網站的業務發展(同理,驅動我的技術提高的主要力量在於工做中接觸此類工做的經驗的積累)數據庫
3.解決大型網站的問題,不能認死理,沒有固定的解決方案,不能爲了技術而技術,有時甚至改變下業務方的應用場景,也能解決問題(好比12306網站)。設計模式
二 架構瀏覽器
1.大型網站經常使用的幾種架構模式:
1 分層
2 分割
3 分佈式
4 集羣
5 緩存
6 異步
7 冗餘
8 自動化
9 安全緩存
PS.好的設計模式須要架構者深刻理解,並根據實際業務場景應用和微創新安全
2.五個核心要素:性能、可用性、伸縮性、擴展性、安全性性能優化
3.關於「性能」:服務器
3.1 用戶視角的網站性能=開發人員視角的網站性能+運維人員視角的網站性能cookie
3.2 性能指標:響應時間、併發數、吞吐量(TPS\HPS\QPS)、性能計數器(服務器端查看)
3.3 性能測試方法:性能測試、負載測試、壓力測試、穩定性測試
3.3 性能優化策略:1.性能分析(日誌);2性能優化
3.3.1 web前段性能優化:1.瀏覽器訪問優化;2.CDN加速;3反向代理
3.3.2 應用服務器性能育華:1.分佈式緩存;2.異步操做;3.使用集羣;4.代碼優化
3.3.3 存儲性能優化:1.機械硬盤VS固態硬盤;2.B+樹 VS LSM樹(算法、NoSQL產品);3.RAID VS HDFS (數據結構)
PS.網站性能優化定律:
1.優先考慮使用緩存優化性能
2.任何能夠晚點作的事情都應該晚點作(技術要結合業務)
4.關於「可用性」
4.1 應用層主要處理網站應用的業務邏輯,所以有時也稱做業務邏輯層,應用的一個顯著特色是應用的「無狀態性」。
4.2 session管理的幾種手段:session複製、session綁定、利用cookie記錄session、session服務器
4.3 高可用服務策略:分級管理、超時設置、異步調用、服務降級、冪等性設計
4.4 高可用的數據:CAP原理,爲了保證數據的高可用,網站一般會犧牲另外一個也很重要的指標:數據一致性
4.5 數據備份:關係數據庫熱備機制——Master-Slave同步機制
4.5 失效轉移:失效確認、訪問轉移、數據恢復
4.6 軟件質量保證:網站發佈自動腳本、自動化測試、預發佈驗證、代碼控制
4.7 監控數據採集:用戶行爲日誌收集、服務器性能監控、運行數據報告
4.7 監控管理:系統報警、失效轉移、自動優雅降級
5.關於「伸縮性」
5.1 不一樣功能進行物理分離實現伸縮,單一功能經過集羣規模實現伸縮(當一頭牛拉不動的時候,不要去尋找一頭更強壯的牛,而是用二頭牛來拉車)
5.2 應用服務器集羣的伸縮性設計——負載均衡服務器:HTTP重定向負載均衡、DNS域名解析負載均衡、反向代理負載均衡、IP負載均衡、數據鏈路負載均衡(LVS)
5.3 分佈式緩存的伸縮性設計——分佈式緩存的一致性HASH算法
5.4 數據存儲服務器集羣的伸縮性設計——關係數據庫(Cobar)、NoSQL數據庫(HBase)
PS.高手定律:這個世界只有遇不到的問題,沒有解決不了的問題,高手之因此成爲高手,是由於他們遇到了常人很難遇到的問題
救世主定律:遇到問題,分析問題,最後總能解決問題。若是期望一個外面的救世主來解決本身問題,每每只有彼此的抱怨和傷害,因此這個定律也是「沒有救世主定律」
6.關於「擴展性」
6.1 構建可擴展的網站構架(須要經驗豐富的架構師根據實際狀況來定)
6.2 利用分佈式消息隊列下降系統耦合性(生產消費者模式)
6.3 利用分佈式服務打造可複用的業務平臺
6.4 可擴展的數據結構(NoSQL的列族)
7.關於「安全性」
7.1 網站應用攻擊與防護:XSS、注入攻擊、CSRF攻擊、web應用防火牆、網站安全漏洞掃描
7.2 信息加密技術及祕鑰安全管理:單向散列加密、對稱加密、非對稱加密、祕鑰安全管理
7.3 信息過濾與反垃圾:文本匹配、分類算法、黑名單
7.4 電子商務風險控制:低風險——交易系統;高風險——人工審覈
三 案例
1.淘寶
1.1 不一樣時期選用不一樣的技術構架(免費-付費-免費+自主開發)
1.2 小腳船大鞋,不但跑不快,還可能會摔跤
1.3 淘寶主要開源系統:Tair、TFS、OceanBase、DDL
2.維基百科
2.1 CDN服務是核心
2.2 前段服務佔業務80%,所以應用服務端和儲存壓力很小
3.Doris構架分析
3.1 分佈式系統的故障分類及不一樣處理方法:瞬時故障、臨時故障、永久故障
4.秒殺系統
4.1 秒殺系統對應策略:
4.1.1 秒殺系統獨立部署
4.1.2 秒殺商品頁面靜態化
4.1.3 租借秒殺活動網絡寬帶
4.1.4 動態生成隨機下單頁面URL
4.2 用JS控制秒殺頁面按鈕的點亮
4.3 控制用戶下單入口,應用層發現下單用戶超過10個,直接返回活動結束頁面
4.4 大型網站典型故障案例分析
五 架構師
5.1 領導的真諦:尋找一個值得共同奮鬥的目標,營造一個讓你們都能最大限度發揮自我價值的工做氛圍
5.2 提出問題的Tips:
5.2.1 把「個人問題」表達成「咱們的問題」
5.2.2 給上司提封閉式問題,給下屬提開發式問題
5.2.3 指出問題而不是批評人
5.2.4 用贊同的方式提出問題
5.3 漫畫網站構架師:各類職責和分類
PS.到此,這本《大型網站技術架構》一書,已經看完和筆記,整體感受下來,這本書較《大型網站系統與Java中間件實踐》一書更淺顯易懂,各章節分類明晰,又結合不少案例。雖然裏面關於技術細節方面的東西講的沒那麼多,更多的是關於構架方便的東西。可是整本書讀下來不會讓人有很深澀難懂的感受,整本書從思想的角度解析了網站系統的構成,更多的是教你們怎麼面對實際工做中可能遇到的問題,感受十分受用,每一章均可以在之後工做中用的到。