tft每日頭條

 > 科技

 > web 服務器架構

web 服務器架構

科技 更新时间:2024-07-21 22:19:22

說道大型網站,就的先說大型網站的特點:高并發,大流量,高可用,海量數據等。下面就說說大型網站的架構演化過程吧。

1、初始階段的網站架構

初始階段都比較簡單,通常一台服務器就可以搞定一個網站了,看圖。

web 服務器架構(十張圖帶你了解大型網站架構)1

應用程序、數據庫、文件等所有資源都在一台服務器上,通常使用 Linux PHP MySQL Apache 就可以完成整個項目部署,然後再買個域名,租一個廉價的服務器就可以開始我們的網站之旅了

2、應用服務和數據服務分離

随着網站業務的發展,一台服務器逐漸不能滿足需求;這時候就需要将應用和數據分離,如圖。

web 服務器架構(十張圖帶你了解大型網站架構)2

對于這三台服務器要求各不相同:

  • 應用服務器 要處理大量的業務邏輯,所以需要更好更快更強大的 CPU
  • 數據庫服務器 需要快速的進行磁盤檢索和數據緩存,因此需要更快的硬盤和更大的内存
  • 文件服務器 需要存儲用戶上傳的文件資源,因此需要更大的硬盤存儲空間

應用與數據分離後,各個的職責變得更加專一,網站的性能得到進一步的提升,但随着用戶的繼續增加,我們需要對網站架構進一步優化

3.使用緩存改善網站性能

毫無疑問,現在的網站基本上都會使用緩存,即:80%的業務訪問都會集中在20%的數據上。

網站的緩存可以分為兩種:緩存在應用服務器上的本地緩存和緩存在專門的分布式緩存服務器上的遠程緩存

  • 本地緩存 的訪問速度會快一些,但是受應用服務器内存限制,緩存數據量很有限,而且會出現内存争用的情況
  • 遠程分布式緩存 可以使用集群的方式,部署大内存的服務器作為專門的緩存服務器,可以在理論上做到不受内存容量限制的緩存服務

web 服務器架構(十張圖帶你了解大型網站架構)3

4、使用應用服務器集群改善網站的并發處理能力

因為單一應用服務器能夠處理的請求連接有限,在網站訪問高峰時期,應用服務器會成為整個網站的瓶頸。因此使用負載均衡處理器勢在必然。通過負載均衡調度服務器,可将來自浏覽器的訪問請求分發到應用的集群中的任何一台服務器上。

web 服務器架構(十張圖帶你了解大型網站架構)4

5、數據庫讀寫分離

在使用了緩存後,大多數的操作不經過數據庫訪問就能完成,但仍有一部分讀操作(緩存訪問未命中,緩存過期)和所有的寫操作需要訪問數據庫,在網站的用戶量達到一定時,數據庫的負載問題就來了

當用戶達到一定規模後,數據庫因為負載壓力過高而成為網站的瓶頸。而目前主流的數據庫都提供主從熱備功能,通過配置兩台數據庫主從關系,可以将一台數據庫的數據更新同步到另一台服務器上。網站利用數據庫這一功能實現數據庫讀寫分離,從而改善數據庫負載壓力。

web 服務器架構(十張圖帶你了解大型網站架構)5

應用服務器在寫操作的時候,訪問主數據庫,主數據庫通過主從複制機制把數據同步更新到從數據庫,這樣當應用服務器進行讀操作的時候,就能訪問從數據庫獲取數據

6、使用反向代理和CDN加上網站相應

提高網站的訪問速度,主要手段有使用CDN和反向代理。

CDN和反向代理的基本原理都是緩存,區别在于CDN部署在網絡提供商的機房,而反向代理是部署在網站的中心機房,當用戶請求到達中心機房後,首先訪問的反向代理,如果反向代理緩存着用戶請求的資源,則直接返回給用戶。

web 服務器架構(十張圖帶你了解大型網站架構)6

7、使用分布式文件系統和分布式數據庫系統

任何強大的單一服務器都滿足不了大型網站持續增長的業務需求。

分布式數據庫時網站數據庫拆分的最後手段,隻用在單表數據規模非常大的時候才使用。不到不得已時,網站更常用的數據庫拆分手段是業務拆分,将不同業務的數據部署在不同的物理服務器上。

web 服務器架構(十張圖帶你了解大型網站架構)7

8、使用NoSQL和搜索引擎

搜素引擎也基本已經形成現在大型網站必須提供的功能了,網站需要采用一些非關系數據庫技術如NoSQL和非數據庫查詢技術如搜索引擎。

web 服務器架構(十張圖帶你了解大型網站架構)8

9、業務拆分

對于大型網站,我們可以分而治之,把整個網站的業務分為不同的模塊,比如大型的交易購物完整可以分為首頁、店鋪、訂單、買家等,分别交給不同的業務團隊來負責

同時我們将一個網站根據模塊劃分拆分成多個應用,每個應用進行單獨的部署和維護,應用之間通過超鍊接建立關系(指向不同的應用地址),最後通過相同的數據存儲系統來構成一個互相關聯的完整系統

web 服務器架構(十張圖帶你了解大型網站架構)9

10、分布式服務

随着業務拆分,整個系統越來越大,應用的整體複雜度呈指數級增加,部署維護越來越困難,并且所有的應用服務器都要與數據庫服務連接, 在數萬台服務器規模的情況下,這些連接的數目是服務器規模的平方,導緻資源不足

這時候就要對相同的業務進行提取,獨立部署,把這些可重用的業務和連接數據庫等,提取出來作為公共業務服務,而應用系統隻需要通過分布式服務訪問公共業務服務完成業務操作

web 服務器架構(十張圖帶你了解大型網站架構)10

來源:csdn 博主:右耳聽雨

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved