大型網站架構演化發展歷程 - 上
大型網站的技術挑戰主要來自於龐大的使用者,高併發的訪問和海量的資料。
1 初始階段的網站架構
大型網站都是從小網站發展而來,也是從小型網站架構逐步演化而來。
此時應用程式、資料庫、檔案等所有資源都在一臺伺服器上。
2 應用服務和資料服務分離
隨著網站的發展,越來越多的使用者訪問導致效能越來越差,越來越多的資料導致儲存空間不足。這時需要將應用和資料分離。
分離後整個網站使用三臺伺服器:應用伺服器、檔案伺服器和資料庫伺服器。
- 應用伺服器需要處理大量業務邏輯,因此需要更快更強大的 CPU
- 資料庫伺服器需要快速的磁碟檢索和資料快取,因此需要更快的硬碟和更大的記憶體
- 檔案伺服器需要儲存大量使用者上傳的檔案,因此需要更大的硬碟
應用資料分離後,不同特性的伺服器承擔不同的服務角色,網站的併發能力和資料儲存空間得到了很大改善。
3 使用快取改善網站效能
網站訪問特點和現實世界的財富分配一樣遵循二八定律:80% 的業務訪問集中在 20% 的資料上。既然大部分的業務訪問集中在一小部分資料上,那麼可以把這一小部分資料快取在記憶體中,減小資料庫訪問壓力,提高整個網站的訪問速度。
網站使用的快取可分為兩種
- 本地快取:訪問速度快,但受應用伺服器記憶體限制,快取數量有限
- 遠端分散式快取:可使用叢集方式部署,使用大記憶體的伺服器作為專門的快取伺服器
4 使用應用伺服器叢集改善網站的併發處理能力
使用叢集是解決網站高併發、海量資料問題的常用手段,通過增加伺服器分擔原來伺服器的訪問儲存壓力。
對網站架構而言,只要 能通過增加一臺伺服器的方式改善負載壓力,就可以用同樣的方式持續增加伺服器不斷改善系統效能,從而實現系統的可伸縮性。
通過負載均衡排程器,可將來及使用者瀏覽器的訪問請求分發到應用伺服器叢集中的任何一臺伺服器上。
5 資料庫讀寫分離
網站使用快取後,絕大部分的讀操作可以不通過資料庫就能完成,但仍有一部分讀操作(快取不命中、快取過期)和全部的寫操作都需要訪問資料庫。
目前大部分的主流資料庫都提供主從熱備功能,通過配置兩臺資料庫主從關係,可以將一臺資料庫伺服器的資料更新同步到另一臺伺服器上。網站利用資料庫的這一功能實現讀寫分離。
應用伺服器在寫資料時訪問主資料庫,主資料庫通過主從複製機制將資料更新同步到從資料庫,這樣當應用伺服器讀資料時,就可以通過從資料庫獲取資料。
文章內容摘抄自《大型網站技術架構 - 核心原理與案例分析》
相關文章
- 大型網站架構演化發展歷程網站架構
- 大型網站架構演化歷程網站架構
- 阿里面試技術手冊(二):大型網站架構演化發展歷程阿里面試網站架構
- 大型網站系統架構演化網站架構
- 軟體架構發展歷程分享架構
- 大型網站技術架構——2. 網站架構模式網站架構模式
- 大型網站技術架構(三)--架構模式網站架構模式
- 大型網站架構模式筆記網站架構模式筆記
- 大型網站架構之我見網站架構
- 大型網站技術架構(四)--核心架構要素網站架構
- 大型網站架構利器-CDN技術網站架構
- 去哪兒黃勇:去哪網資料庫架構發展歷程資料庫架構
- 大型網站技術架構核心原理(1)網站架構
- 架構演化架構
- 一張圖看懂大型網站技術架構網站架構
- 讀書筆記-大型網站技術架構筆記網站架構
- 《大型網站技術架構:核心原理與案例分析》讀書筆記 - 第4篇 架構師(附 大型網站架構技術一覽)網站架構筆記
- 思維導圖形式帶你讀完《大型網站技術架構》上網站架構
- 大型分散式網站架構實戰專案分析分散式網站架構
- 乾貨 | 大型網站專案架構技術一覽網站架構
- 大型網站的可伸縮性架構如何設計?網站架構
- HTTP - 發展歷程HTTP
- 大型網際網路架構概述架構
- 網站從小到大發展過程網站
- 基於微服務架構開發線上教育網站微服務架構網站
- 初入探秘:大型網站架構設計與方法總結網站架構
- HTTP版本發展歷程HTTP
- Java 的發展歷程Java
- 架構師日記-從資料庫發展歷程到資料結構設計探析架構資料庫資料結構
- 大型網際網路公司網站架構背後的基礎技術2019網站架構
- 大型網站架構演進的五大階段盤點網站架構
- 大型網站背後的高效能系統架構設計網站架構
- 讀書筆記 之《軟體架構設計: 大型網站技術架構與業務架構融合之道》筆記架構網站
- 阿里P9架構師簡述從單機至億級流量大型網站系統架構的演進過程阿里架構網站
- 《大型網站技術架構:核心原理與案例分析》讀書筆記 - 第2篇 架構網站架構筆記
- 高併發網站架構設計網站架構
- 深度學習發展歷程深度學習
- 華為的發展歷程