《大型網路技術架構》筆記 1
第一章、大型網路架構演化
最原始:
應用服務與資料服務的分離
使用快取來提高使用者讀的效能。(28定則:80%的訪問涉及20%的資料)
使用應用伺服器叢集處理併發的業務需求
使用資料庫的讀寫分離(主從資料庫來分別處理寫讀操作,技術點:同步資料技術;mysql是通過二進位制日誌來複制資料)
Q:為什麼數所庫讀寫分離能夠減輕高負載資料壓力?從資料庫從主資料庫同步複製過來資料不要寫麼?
A:資料庫提高讀取效率的第一選擇不是快取,而是索引。但是維護索引有開銷,會降低增刪改效能。所以,為提高修改和讀取效能所做的優化是衝突的,分開可以單獨優化。
CDN和反向代理加速網站響應
CDN部署在網路提供房的杋房,將“快取”拉近與使用者的物理距離提高響應速度。
反向代理部署在中心機房,使用者首先訪問反向代理伺服器,可以將靜態頁面等直接返回給客戶。降低web伺服器訪問次數以減少其壓力。
使用分散式處理資料(檔案、資料庫)
採用非關係資料庫技術和非資料庫查詢技術處理資料檢索(資料庫和資訊檢索技術的融合)
業務拆分
分散式服務
由於所有應用要和所有資料庫連線(連線數目是資料庫規模平方),導致資料庫連線資源不足。於是,將共同的業務抽離出來,獨立部署。由可複用的業務連線資料庫,應用系統只需管理應用介面。
Q:既然合之何必拆之?增加了這麼多的開銷對實際的效能似乎意義不大。(由於視野有限,下面只提供個人理解。歡迎大神來答疑)
A:可能是大有大的難處吧,正如公司大了,於是就有了管理層,雖然看起來(實際也是)沒必要的。
“事物發展到一定階段,就會擁有自身的發展衝動,擺脫其初衷,向著使自已更強大的方向發展。既然大型網站架構解決了海量資料的管理和高併發事務的處理,那麼就可以把這些解決方案應用到網站自身以外的業務上去。我們看到目前許多大型網站都開始建設雲端計算平臺,將計算作為一種基礎資源出售,中小網站不需要再關心技術架構問題,只需要按需付費,就可以使網站隨著業務的增長逐漸獲得更大的儲存空間和更多的計算資源。”