常見的網站伺服器架構有哪些?
1. 初始階段的網站架構
一般來講,大型網站都是從小型網站發展而來,一開始的架構都比較簡單,隨著業務複雜和使用者量的激增,才開始做很多架構上的改進。當它還是小型網站的時候,沒有太多訪客,一般來講只需要一臺伺服器就夠了,這時應用程式、資料庫、檔案等所有資源都在一臺伺服器上,網站架構如下圖所示:
2. 應用服務和資料服務分離
隨著網站業務的發展和使用者量的增加,一臺伺服器就無法再滿足需求了。大量使用者訪問導致訪問速度越來越慢,而逐漸增加的資料也會導致儲存空間不足。這時就需要將應用和資料分離,應用和資料分離後整個網站使用 3 臺伺服器:應用伺服器、檔案伺服器和資料庫伺服器。這 3 臺伺服器對硬體資源的要求各不相同:
應用伺服器業務邏輯,需要強大的CPU
資料庫伺服器對磁碟讀寫操作很多,需要更快的磁碟和更大的記憶體
檔案伺服器儲存使用者上傳的檔案,因此需要更大的磁碟空間
此時,網站系統的架構如下圖所示:
3. 使用快取改善網站效能
隨著使用者再增加,網站又會一次面臨挑戰:資料庫壓力太大導致整站訪問效率再此下降,使用者體驗受到影響。一個網站,往往 80% 的業務訪問集中在 20% 的資料上,比如微博請求量最多的肯定是那些千萬級粉絲的大 V 的微博,而幾乎沒有人關注的你的首頁,除了自己想起來之外根本不會被開啟。既然大部分業務訪問集中在一小部分資料上,那就把這一小部分資料先提前快取在記憶體中,而不是每次都去資料庫讀取,這樣就可以減少資料庫的訪問壓力,從而提高整個網站的訪問速度。
網站使用的快取一般分為快取到應用伺服器或者快取在專門的分散式快取伺服器。快取到應用伺服器自己的訪問速度快很多,但是受自身記憶體限制,往往不太適用。遠端分散式快取使用一個叢集專門負責快取服務,當記憶體不夠還可以輕鬆得動態擴容。
4. 使用應用伺服器叢集改善網站的併發處理能力
使用快取後,資料訪問壓力得到了緩解,但是單一應用伺服器能夠處理的請求連線有限,在網站訪問高峰期,應用伺服器就成了整個網站的效率瓶頸。使用分散式叢集是網站解決高併發、海量資料問題的常用手段。當一臺伺服器的處理能力和儲存空間不足時,不要嘗試去更換更強大的伺服器,對大型網站而言,多麼強大的伺服器,都滿足不了網站持續增長的業務需求。這種情況下,更恰當的做法是增加一臺伺服器分擔原有伺服器的訪問及儲存壓力。 對網站架構而言,只要能透過增加一臺伺服器的方式改善負載壓力,就可以以同樣的方式持續增加伺服器不斷改善系統效能,從而實現系統的可伸縮性。應用伺服器實現叢集是網站可伸縮架構設計中較為簡單成熟的一種,如下圖所示:
透過負載均衡排程伺服器,可以將來自使用者瀏覽器的訪問請求分發到應用伺服器叢集中的任何一臺伺服器上,如果有更多使用者,就在叢集中加入更多的應用伺服器,使應用伺服器的壓力不再成為整個網站的瓶頸。
5. 資料庫讀寫分離
網站在使用快取後,使對大部分資料讀操作訪問都可以不透過資料庫就能完成,但是仍有一部分讀操作(快取訪問不命中、快取過期)和全部的寫操作都需要訪問資料庫,在網站的使用者達到一定規模後,資料庫因為負載壓力過高而成為網站的瓶頸。 目前大部分的主流資料庫都提供主從熱備功能,透過配置兩臺資料庫主從關係,可以將一臺資料庫伺服器的資料更新同步到另一臺伺服器上。網站利用資料庫的這一功能,實現資料庫讀寫分離,從而改善資料庫負載壓力。如下圖所示:
應用伺服器在寫資料的時候,訪問主資料庫,主資料庫透過主從複製機制將資料更新同步到從資料庫,這樣當應用伺服器讀資料的時候,就可以透過從資料庫獲得資料。為了便於應用程式訪問讀寫分離後的資料庫,通常在應用伺服器端使用專門的資料訪問模組,使資料庫讀寫分離對應用透明。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69951811/viewspace-2663671/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 2021網站常見漏洞有哪些網站
- 網站被攻擊常見的形式有哪些?網站
- 常見的Web伺服器有哪些?Web伺服器
- 建設手機網站有哪些常見誤區?網站
- 【知識分享】網站不能訪問的常見原因有哪些網站
- 【教程】蘋果上架常見要求的有哪些?蘋果
- 伺服器當機常見原因有哪些伺服器
- 大型網站架構之我見網站架構
- 網頁抓取常見的問題有哪些?網頁
- 常見的伺服器安全防護措施有哪些?伺服器
- 【教程】蘋果上架要求有哪些常見要點?蘋果
- DDOS常見的型別有哪些?型別
- 適合伺服器的網站型別有哪些伺服器網站型別
- 常見網路攻擊有哪些?如何防禦?
- 常見的資料整合有哪些方法?有哪些分類?
- 伺服器防火牆如何開放埠?常見的伺服器埠有哪些?伺服器防火牆
- 常見越權方式有哪些?
- 工控機的常見問題有哪些
- 有哪些常見的資料探勘方法?
- 常見的ERP實施方法有哪些?
- 常見的五種軟體架構架構
- 網站伺服器資料恢復的方式有哪些網站伺服器資料恢復
- 乾貨好文帶你認識WebRTC伺服器的常見架構Web伺服器架構
- 常見的遠端管理埠有哪些?網路安全學習
- python檔案的常見的操作有哪些?Python
- 虛擬機器常見的網路型別有哪些?linux網路虛擬機型別Linux
- 根據伺服器的基礎架構分類有哪些伺服器伺服器架構
- 網路安全常見問題有哪些?網路安全學習
- 大型網站技術架構——2. 網站架構模式網站架構模式
- PbootCMS網站常見報錯boot網站
- 常見的專案管理問題有哪些?專案管理
- 資料治理常見的誤區有哪些
- 常見的社會潛規則有哪些?
- 常見的錯誤SEO方法有哪些呢?
- 10種常見的軟體架構模式架構模式
- 網站伺服器是什麼意思?它的用途有哪些?網站伺服器
- 網站有幾種常見的指令碼型別?網路安全學習網站指令碼型別
- 常見的網路攻擊型別有哪些?主要包含什麼?型別