當前位置:才華齋>職業>系統架構師>

網站後端應用系統架構的優化

系統架構師 閱讀(7.37K)

為了解決網站後端應用系統架構目前存在的問題,需要對網路結構和應用系統進行統一優化調整,下面我們一起來看看:

網站後端應用系統架構的優化

1.實現動、靜態檔案分離,使用靜態檔案快取提高網站訪問效率,保護靜態檔案安全,避免程式問題影響靜態頁面正常瀏覽。

2.使用全域性檔案系統對網站靜態檔案以及其他可歸檔管理的檔案進行分類歸檔管理,使檔案集中儲存。

3.對動態程式檔案根據系統環境需求進行叢集化部署,使用伺服器叢集和應用叢集提供高效、高可用的應用系統環境。

4.對現有資料庫進行集中管理,從而減小資料庫風險,提高資料庫的效能,降低資料庫維護管理成本。

通過以上種種策略的部署與實施,從而達到整個網站各項應用和訪問能夠高效、穩定地執行,降低運營風險的目標,具體實現措施為:

  一、使用靜態檔案快取提高網站訪問效率,保護後端靜態檔案

使用Linux下的Squid組建快取服務叢集,對網站的靜態檔案,如網頁檔案、樣式表文件、頁面指令碼檔案、圖片檔案、XML檔案和其他型別靜態檔案進行快取。對原本儲存在釋出伺服器上的靜態檔案,根據訪問請求,將檔案根據索引儲存在記憶體中,實現以下幾點功能:

1.硬碟上讀取速度明顯慢於記憶體,因此在記憶體中儲存的資料可以以最快的速度返回給訪問使用者,通過記憶體索引,減少硬碟檔案索引時間和檔案讀取時間,提高檔案命中率,降低後端伺服器IO的資源佔用,保證高效地對外發布。

d是使用反向代理技術,只向後端的源伺服器請求資料,不允許通過其他途徑對記憶體裡的資料進行更改,因此不會因為網路應用漏洞導致檔案內容被篡改,保障了網站靜態檔案的安全可靠。

3.通過Squid中的Gzip模組,對快取的靜態檔案進行壓縮,減少靜態檔案佔用的空間,進而減少靜態檔案訪問對網路頻寬的消耗,降低了網路使用成本。

  二、使用全域性檔案系統對網站靜態內容集中儲存、歸檔

隨著網站靜態檔案釋出量逐年增大,其佔用的儲存空間也不斷增大。靜態檔案釋出所在的儲存位置零散,檔案儲存規則各異,目錄裡的檔案雜亂,導致網站歷史資料無法集中儲存。通過Linux全域性檔案系統(GFS)對網站靜態檔案集中儲存、歸檔,可以提高網站應用伺服器的使用效率,保障網站靜態檔案資料安全與完整。

Linux全域性檔案系統是基於Linux叢集的.檔案系統,全稱是Linux Global File System。部署時使用3臺伺服器組成靜態內容儲存叢集連線網路儲存裝置(IP SAN),同時使用同一邏輯分割槽,共享分割槽裡的目錄和檔案,這樣就能通過相互協商的方式同時對分割槽內的目錄和檔案進行寫和讀,在檔案系統發生錯誤時,可以使用網路儲存的快照與回溯對資料進行及時的恢復。

當靜態內容儲存叢集中的伺服器發生寫入衝突時,即同時對同一檔案進行寫入,叢集會根據叢集成員的投票結果,對異常的伺服器採取離線重啟的措施,這樣可以避免2臺伺服器對同一檔案寫入造成的檔案損壞,保障了檔案的安全可靠。靜態內容儲存叢集還可以根據訪問的請求線上增加新的伺服器,滿足了靜態檔案不斷增多、訪問量日益增大的壓力。

在靜態內容儲存叢集中,將原來分佈於各個獨立伺服器上的靜態檔案集中儲存到網路儲存中,根據特定的規則對內容進行分類儲存,這樣既提供了統一的對外發布功能,又能對網站靜態檔案進行集中的儲存,提高網站靜態檔案釋出效率,還能對靜態檔案進行歸檔備份和管理,保障了靜態檔案的安全。

  三、對網站動態程式分類,部署應用程式叢集

由於網站的發展經歷了數年,使用的網站程式系統種類繁多,每種網站程式系統又有不同的版本,它們對伺服器、作業系統、系統環境的需求各異。為了保障網站應用程式系統高效穩定,經過對目前正在執行的網站應用程式系統整理分類,部署以下幾類應用程式叢集:

ows Server平臺下的ASP、應用程式叢集和JAVA應用程式叢集,根據不同的程式分配不同的使用者許可權、應用程式池,確保每個應用之間不會產生干擾,同一套程式系統分別部署在兩臺甚至多臺伺服器上,使用應用負載均衡根據域名、請求路徑等策略選擇伺服器,未被選中的伺服器作為備用,隨時接替發生故障的伺服器。

x平臺下的PHP應用程式系統叢集,使用Linux全域性檔案系統儲存PHP程式檔案,並且在每臺伺服器上部署高效率的Nginx,提供高併發的應用程式請求響應,使用FastCGI通過PHP-FPM執行PHP程式,PHP程式的變數儲存在Memcache中共享給叢集中所有的PHP程式。PHP應用程式叢集可以根據網站的訪問量逐漸增加伺服器提高網站服務能力,確保了高效的PHP應用程式叢集,前端再使用應用負載均衡根據域名、請求路徑等策略同時轉發所有PHP連線請求到所有的PHP應用程式伺服器,提供高併發、高效率和高可用的PHP應用程式叢集。

  四、對網站資料庫服務統一部署,集中管理

為了滿足網站動態程式叢集對高效能、高可用資料庫服務的要求,根據資料型別部署了MySQL資料庫叢集、MS-SQL資料庫叢集和Oracle資料庫叢集,實現了對資料庫的統一部署和集中管理,分別如下:

1.使用MySQL Cluster叢集服務組建MySQL資料庫叢集,通過配置MySQL服務,能夠最大限度地使用每臺數據庫伺服器資源,提供高效、高併發的資料庫服務,叢集中的每臺伺服器都可以作為其他伺服器的線上備份,使用MySQL事務日誌(bin-log)實現MySQL資料庫的近線備份,並且編寫Linux Shell在每天凌晨網站請求閒時在網路儲存上進行離線備份,確保資料檔案的安全可靠。

2.通過Microsoft SQL Server組建MS-SQL資料庫叢集,配合資料庫映象伺服器,驗證資料庫伺服器的完整性,對集中部署的資料庫做分割槽表,避免資料庫檔案過大導致資料庫系統效率低;配合前端應用負載均衡為ASP、應用程式叢集提供高效、穩定、安全的資料庫服務,配置資料庫維護計劃對資料庫檔案進行近線和離線備份,確保資料庫檔案的安全。

3.使用Oracle RAC資料庫叢集套件部署Oracle真正應用叢集(Oracle Real Application Cluster)。部署時使用2臺伺服器通過網路儲存為前端JAVA應用服務叢集提供強大的資料庫服務,也提供了大型資料倉儲和資料分析服務,為網站的大型應用可靠穩定地對外服務提供了保障。

通過以上的優化和調整,荊楚網目前能有效減少網頁檔案無法訪問的出現機率,各個應用系統的整體可靠性提高了60%,應用系統的效率提高了30%,在滿足現有系統高效執行的情況下,節約了7臺伺服器。同時,極大地降低了應用系統的故障時間和影響,為下一步進行伺服器應用虛擬化叢集部署提供了基本條件,也確保與提高了網站的服務水平。