溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

大型web系統(tǒng)架構(gòu)詳解

發(fā)布時間:2020-08-11 11:47:05 來源:ITPUB博客 閱讀:125 作者:代碼人生ll 欄目:編程語言

動態(tài)應(yīng)用,是相對于網(wǎng)站靜態(tài)內(nèi)容而言,是指以 c/c++ 、 php 、 Java perl 、 .net 服務(wù)器端語言開發(fā)的網(wǎng)絡(luò)應(yīng)用軟件,比如論壇、網(wǎng)絡(luò)相冊、交友、 BLOG 等常見應(yīng)用。動態(tài)應(yīng)用系統(tǒng)通常與數(shù)據(jù)庫系統(tǒng)、緩存系統(tǒng)、分布式存儲系統(tǒng)等密不可分。

  大型動態(tài)應(yīng)用系統(tǒng)平臺主要是針對于大流量、高并發(fā)網(wǎng)站建立的底層系統(tǒng)架構(gòu)。大型網(wǎng)站的運行需要一個可靠、安全、可擴展、易維護的應(yīng)用系統(tǒng)平臺做為支撐,以保證網(wǎng)站應(yīng)用的平穩(wěn)運行。 

  大型動態(tài)應(yīng)用系統(tǒng)又可分為幾個子系統(tǒng):
   (1) Web前端系統(tǒng)
  (2) 負載均衡系統(tǒng)
  (3) 數(shù)據(jù)庫集群系統(tǒng)
  (4) 緩存系統(tǒng)
  (5) 分布式存儲系統(tǒng)
  (6) 分布式服務(wù)器管理系統(tǒng)
  (7) 代碼分發(fā)系統(tǒng)

  

推薦下小編的JAVA學(xué)習(xí)群;537357296,不管你是小白還是大牛,小編我都歡迎,不定期分享干貨,

包括小編自己整理的一份2019最新的JAVA和0基礎(chǔ)入門教程,歡迎初學(xué)和進階中的小伙伴。


每天晚上20:00都會開直播給大家分享JAVA知識和路線方法,群里會不定期更新最新的教程和學(xué)習(xí)方法

(進群送2019JAVA學(xué)習(xí)教程),大家都是學(xué)習(xí)JAVA的,或是轉(zhuǎn)行,或是大學(xué)生,還有工作中想提升自己能力的JAVA黨,

如果你是正在學(xué)習(xí)JAVA的小伙伴可以加入學(xué)習(xí)。最后祝所有程序員都能夠走上人生巔峰,讓代碼將夢想照進現(xiàn)實,

非常適合新手學(xué)習(xí),有不懂的問題可以隨時問我,工作不忙的時候希望可以給大家解惑

一、Web 前端系統(tǒng)

   大型web系統(tǒng)架構(gòu)詳解

   為了達到不同應(yīng)用的服務(wù)器共享、避免單點故障、集中管理、統(tǒng)一配置等目的,不以應(yīng)用劃分服務(wù)器,而是將所有服務(wù)器做統(tǒng)一使用,每臺服務(wù)器都可以對多個應(yīng)用提供服務(wù),當(dāng)某些應(yīng)用訪問量升高時,通過增加服務(wù)器節(jié)點達到整個服務(wù)器集群的性能提高,同時使他應(yīng)用也會受益。

  該 Web 前端系統(tǒng)基于 Apache/Lighttpd/Eginx 等的虛擬主機平臺,提供 java程序運行環(huán)境。服務(wù)器對開發(fā)人員是透明的,不需要開發(fā)人員介入服務(wù)器管理

 

二、負載均衡系統(tǒng)

   大型web系統(tǒng)架構(gòu)詳解

   負載均衡系統(tǒng)分為硬件和軟件兩種。

  硬件負載均衡效率高,但是價格貴,比如 F5 等。軟件負載均衡系統(tǒng)價格較低或者免費,效率較硬件負載均衡系統(tǒng)低,不過對于流量一般或稍大些網(wǎng)站來講也足夠使用,比如 lvs,nginx 。大多數(shù)網(wǎng)站都是硬件、軟件負載均衡系統(tǒng)并用。

 

三、數(shù)據(jù)庫集群系統(tǒng)

    大型web系統(tǒng)架構(gòu)詳解

  由于 Web 前端采用了負載均衡集群結(jié)構(gòu)提高了服務(wù)的有效性和擴展性,因此數(shù)據(jù)庫必須也是高可靠的,才能保證整個服務(wù)體系的高可靠性,如何構(gòu)建一個高可靠的、可以提供大規(guī)模并發(fā)處理的數(shù)據(jù)庫體系?

  我們可以采用如上圖所示的方案:

  (1)  使用  MySQL  數(shù)據(jù)庫,考慮到 Web 應(yīng)用的數(shù)據(jù)庫讀多寫少的特點,我們主要對讀數(shù)據(jù)庫做了優(yōu)化,提供專用的讀數(shù)據(jù)庫和寫數(shù)據(jù)庫,在應(yīng)用程序中實現(xiàn)讀操作和寫操作分別訪問不同的數(shù)據(jù)庫。

  (2)  使用  MySQL Replication  機制實現(xiàn)快速將主庫 (寫庫) 的數(shù)據(jù)庫復(fù)制到從庫(讀庫) 。一個主庫對應(yīng)多個從庫,主庫數(shù)據(jù)實時同步到從庫。

  (3)  寫數(shù)據(jù)庫有多臺,每臺都可以提供多個應(yīng)用共同使用,這樣可以解決寫庫的性能瓶頸問題和單點故障問題。

  (4)  讀數(shù)據(jù)庫有多臺,通過負載均衡設(shè)備實現(xiàn)負載均衡,從而達到讀數(shù)據(jù)庫的高性能、高可靠和高可擴展性。

  (5)  數(shù)據(jù)庫服務(wù)器和應(yīng)用服務(wù)器分離。

  (6)  從數(shù)據(jù)庫使用 BigIP 做負載均衡。

 

四、緩存系統(tǒng)

    大型web系統(tǒng)架構(gòu)詳解

  緩存分為文件緩存、內(nèi)存緩存、數(shù)據(jù)庫緩存。在大型 Web 應(yīng)用中使用最多且效率最高的是內(nèi)存緩存。最常用的內(nèi)存緩存工具是 Memcached 。使用正確的緩存系統(tǒng)可以達到實現(xiàn)以下目標(biāo):

  (1) 使用緩存系統(tǒng)可以提高訪問效率,提高服務(wù)器吞吐能力,改善用戶體驗。

  (2) 減輕對數(shù)據(jù)庫及存儲集服務(wù)器的訪問壓力。

  (3) Memcached 服務(wù)器有多臺,避免單點故障,提供高可靠性和可擴展性,提高性能。

  

五、分布式存儲系統(tǒng)

    大型web系統(tǒng)架構(gòu)詳解

  Web 系統(tǒng)平臺中的存儲需求有下面兩個特點:

  (1)  存儲量很大,經(jīng)常會達到單臺服務(wù)器無法提供的規(guī)模,比如相冊、視頻等應(yīng)用。因此需要專業(yè)的大規(guī)模存儲系統(tǒng)。

  (2)  負載均衡 cluster 中的每個節(jié)點都有可能訪問任何一個數(shù)據(jù)對象,每個節(jié)點對數(shù)據(jù)的處理也能被其他節(jié)點共享,因此這些節(jié)點要操作的數(shù)據(jù)從邏輯上看只能是一個整體,不是各自獨立的數(shù)據(jù)資源。

  因此高性能的分布式存儲系統(tǒng)對于大型網(wǎng)站應(yīng)用來說是非常重要的一環(huán)。(這個地方需要加入對某個分布式存儲系統(tǒng)的簡單介紹。) 

 

六、分布式服務(wù)器管理系統(tǒng)

   大型web系統(tǒng)架構(gòu)詳解

   隨著網(wǎng)站訪問流量的不斷增加,大多的網(wǎng)絡(luò)服務(wù)都是以負載均衡集群的方式對外提供服務(wù),隨之集群規(guī)模的擴大,原來基于單機的服務(wù)器管理模式已經(jīng)不能夠滿足我們的需求,新的需求必須能夠集中式的、分組的、批量的、自動化的對服務(wù)器進行管理,能夠批量化的執(zhí)行計劃任務(wù)。

  在分布式服務(wù)器管理系統(tǒng)軟件中有一些比較優(yōu)秀的軟件,其中比較理想的一個是 Cfengine 。它可以對服務(wù)器進行分組,不同的分組可以分別定制系統(tǒng)配置文件、計劃任務(wù)等配置。它是基于 C/S  結(jié)構(gòu)的,所有的服務(wù)器配置和管理腳本程序都保存在 Cfengine Server 上,而被管理的服務(wù)器運行著  Cfengine Client  程序, Cfengine Client 通過 SSL 加密的連接定期的向服務(wù)器端發(fā)送請求以獲取最新的配置文件和管理命令、腳本程序、補丁安裝等任務(wù)。

  有了 Cfengine 這種集中式的服務(wù)器管理工具,我們就可以高效的實現(xiàn)大規(guī)模的服務(wù)器集群管理,被管理服務(wù)器和  Cfengine Server  可以分布在任何位置,只要網(wǎng)絡(luò)可以連通就能實現(xiàn)快速自動化的管理。

  

七、代碼發(fā)布系統(tǒng)

   大型web系統(tǒng)架構(gòu)詳解

   隨著網(wǎng)站訪問流量的不斷增加,大多的網(wǎng)絡(luò)服務(wù)都是以負載均衡集群的方式對外提供服務(wù),隨之集群規(guī)模的擴大,為了滿足集群環(huán)境下程序代碼的批量分發(fā)和更新,我們還需要一個程序代碼發(fā)布系統(tǒng)。

  這個發(fā)布系統(tǒng)可以幫我們實現(xiàn)下面的目標(biāo):

  (1)  生產(chǎn)環(huán)境的服務(wù)器以虛擬主機方式提供服務(wù),不需要開發(fā)人員介入維護和直接操作,提供發(fā)布系統(tǒng)可以實現(xiàn)不需要登陸服務(wù)器就能把程序分發(fā)到目標(biāo)服務(wù)器。

  (2)  我們要實現(xiàn)內(nèi)部開發(fā)、內(nèi)部測試、生產(chǎn)環(huán)境測試、生產(chǎn)環(huán)境發(fā)布的 4 個開發(fā)階段的管理,發(fā)布系統(tǒng)可以介入各個階段的代碼發(fā)布。

  (3)  我們需要實現(xiàn)源代碼管理和版本控制, SVN 可以實現(xiàn)該需求。

  這里面可以使用常用的工具 Rsync ,通過開發(fā)相應(yīng)的腳本工具實現(xiàn)服務(wù)器集群間代碼同步分發(fā)。


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI