【讀書筆記】大型網站架構演化

大型網站架構演化

網站架構設計的目標

高可用、高性能、易擴展、可伸縮、安全。

網站的價值在於它能爲用戶提供什麼價值,在於網站能做什麼,不在於網站怎麼做的。
不是所有的問題都可以通過技術來解決。
有的時候調整業務也是很好的一種方式。
技術是用來解決業務問題的,業務的問題也可以嘗試通過業務的手段去解決。

網站架構演化發展歷程

初始階段

在這裏插入圖片描述

應用服務和數據服務分離

一臺服務器逐漸不能滿足需求,越來越多的用戶訪問導致性能越來越差,越來越多的數據導致存儲空間不足。
將存儲和應用服務器分開。
在這裏插入圖片描述

緩存

80% 的業務訪問集中在 20% 的數據上。
緩存又可以有兩種方案:

  1. 緩存在應用服務器的本地緩存;
  2. 訪問速度較快,但是收到內存限制。
  3. 專門的分佈式緩存服務器;
  4. 理論上不受內存容量限制。

在這裏插入圖片描述

應用服務器集羣

使用集羣是網站解決高併發、海量數據問題的常用手段。

在這裏插入圖片描述

數據庫讀寫分離

網站使用緩存後,絕大部分數據讀操作訪問都可以不通過數據庫就能完成,但是仍有一部分讀操作(緩存訪問不命中、緩存過期)和全部的寫操作需要訪問數據庫,在網站的用戶達到一定規模後,數據庫因爲負載壓力過高而成爲網站的瓶頸。
大部分主流數據庫提供主從熱備功能,配置主從關係,將數據同步,利用這一功能進行讀寫分離,改善數據庫負載壓力。
在這裏插入圖片描述

反向代理和 CDN 加速

CDN 和 反向代理的基本原理都是緩存。
CDN 部署在網絡提供商的機房,用戶在請求網站服務時,可以從距離自己最近的網絡提供商機房獲取數據;
反向代理部署在網站的中心機房,當用戶請求到達中心機房後,首先訪問的服務器是反向代理服務器,如果反向代理服務器中緩存着用戶請求的資源,就將其直接返回給用戶。
在這裏插入圖片描述

分佈式文件系統和分佈式數據庫

文件服務器正常,文件太多放不下了。
分佈式數據庫是網站數據庫拆分的最後手段,只有在單表數據規模非常大的時候才使用。
不到不得已時,網站常用的數據庫拆分手段是業務分庫,不同業務使用不同數據庫部署在不同的機器上。

在這裏插入圖片描述

NoSQL 和搜索引擎

網站業務愈加複雜,對數據存儲和檢索的需求也越來越複雜,網站需要使用一些菲關係數據庫技術如 NoSQL 和非數據庫查詢技術如搜索引擎。
在這裏插入圖片描述

業務拆分

縱向拆分。
在這裏插入圖片描述

服務拆分

橫向拆分。
提供一些統一的常用的相同的業務操作。
業務部門、基礎服務器部門、數據部門等等。

在這裏插入圖片描述


EOF

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章