ASP.NET 構建高性能網站 架構設計

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

Web前端系統

ASP.NET 構建高性能網站 架構設計

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

  該Web前端系統基於IIS/ASP.NET等的虛擬主機平台,提供PHP程序運行環境。服務器對開發人員是透明的,不需要開發人員介入服務器管理。

  負載均衡系統

ASP.NET 構建高性能網站 架構設計

  負載均衡系統分為硬件和軟件兩種。硬件負載均衡效率高,但是價格貴,比如F5等。軟件負載均衡系統價格較低或者免費,效率較硬件負載均衡系統低,不過對於流量一般或稍大些網站來講也足夠使用,比如lvs,nginx。大多數網站都是硬件、軟件負載均衡系統並用。

  數據庫集群系統

ASP.NET 構建高性能網站 架構設計

  由於Web前端採用了負載均衡集群結構提高了服務的有效性和擴展性,因此數據庫必須也是高可靠的才能保證整個服務體系的高可靠性,如何構建一個高可靠的、可以提供大規模並發處理的數據庫體系?

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

  1)使用SQL數據庫,考慮到Web應用的數據庫讀多寫少的特點,我們主要對讀數據庫做了優化,提供專用的讀數據庫和寫數據庫,在應用程序中做到讀操作和寫操作分別訪問不同的數據庫。

  2)使用同步機制做到快速將主庫(寫庫)的數據庫復制到從庫(讀庫)。一個主庫對應多個從庫,主庫數據實時同步到從庫。

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

  4)讀數據庫有多台,通過負載均衡設備做到負載均衡,從而達到讀數據庫的高性能、高可靠和高可擴展性。

  5)數據庫服務器和應用服務器分離。

  6)從數據庫使用BigIP做負載均衡。

  緩存系統

ASP.NET 構建高性能網站 架構設計

  緩存分為文件緩存、記憶體緩存、數據庫緩存。在大型Web應用中使用最多且效率最高的是記憶體緩存。最常用的記憶體緩存工具是Memcachd。使用正確的緩存系統可以達到做到以下目標:

  1、使用緩存系統可以提高訪問效率,提高服務器吞吐能力,改善用戶體驗。

  2、減輕對數據庫及存儲集服務器的訪問壓力。

  3、Memcached服務器有多台,避免單點故障,提供高可靠性和可擴展性,提高性能。

  分布式存儲系統

ASP.NET 構建高性能網站 架構設計

Web系統平台中的存儲需求有下面兩個特點:

  1) 存儲量很大,經常會達到單台服務器無法提供的規模,比如相冊、視頻等應用。因此需要專業的大規模存儲系統。

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

  因此高性能的分布式存儲系統對於大型網站應用來說是非常重要的一環。(這個地方需要加入對某個分布式存儲系統的簡單介紹。)

  分布式服務器管理系統

ASP.NET 構建高性能網站 架構設計

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

  在分布式服務器管理系統軟件中有一些比較優秀的軟件,其中比較理想的一個是Cfengine。它可以對服務器進行分組,不同的分組可以分別定制系統配置文件、計劃任務等配置。

  它是基於C/S 結構的,所有的服務器配置和管理腳本程序都保存在Cfengine Server上,而被管理的服務器運行著 Cfengine Client程序,Cfengine Client通過SSL加密的連接定期的向服務器端發送請求以獲取最新的配置文件和管理命令、腳本程序、補丁安裝等任務。

  有了Cfengine 這種集中式的服務器管理工具,我們就可以高效的做到大規模的服務器集群管理,被管理服務器和 Cfengine Server可以分布在任何位置,只要網路可以連通就能做到快速自動化的管理。

  代碼分發系統

ASP.NET 構建高性能網站 架構設計

  隨著網站訪問流量的不斷增加,大多的網路服務都是以負載均衡集群的方式對外提供服務,隨之集群規模的擴大,為了滿足集群環境下程序代碼的批量分發和更新,我們還需要一個程序代碼發布系統。

  這個發布系統可以幫我們做到下面的目標:

  1) 生產環境的服務器以虛擬主機方式提供服務,不需要開發人員介入維護和直接操作,提供發布系統可以做到不需要登陸服務器就能把程序分發到目標服務器。

  2) 我們要做到內部開發、內部測試、生產環境測試、生產環境發布的4個開發階段的管理,發布系統可以介入各個階段的代碼發布。

  3) 我們需要做到源代碼管理和版本控制,SVN可以做到該需求。

  這里面可以使用常用的工具Rsync,通過開發相應的腳本工具做到服務器集群間代碼同步分發。

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!