- 相關推薦
網站后端應用系統架構的優化
為了解決網站后端應用系統架構目前存在的問題,需要對網絡結構和應用系統進行統一優化調整,下面我們一起來看看:
1.實現動、靜態文件分離,使用靜態文件緩存提高網站訪問效率,保護靜態文件安全,避免程序問題影響靜態頁面正常瀏覽。
2.使用全局文件系統對網站靜態文件以及其他可歸檔管理的文件進行分類歸檔管理,使文件集中存儲。
3.對動態程序文件根據系統環境需求進行集群化部署,使用服務器集群和應用集群提供高效、高可用的應用系統環境。
4.對現有數據庫進行集中管理,從而減小數據庫風險,提高數據庫的性能,降低數據庫維護管理成本。
通過以上種種策略的部署與實施,從而達到整個網站各項應用和訪問能夠高效、穩定地運行,降低運營風險的目標,具體實現措施為:
一、使用靜態文件緩存提高網站訪問效率,保護后端靜態文件
使用Linux下的Squid組建緩存服務集群,對網站的靜態文件,如網頁文件、樣式表文件、頁面腳本文件、圖片文件、XML文件和其他類型靜態文件進行緩存。對原本存儲在發布服務器上的靜態文件,根據訪問請求,將文件根據索引保存在內存中,實現以下幾點功能:
1.硬盤上讀取速度明顯慢于內存,因此在內存中保存的數據可以以最快的速度返回給訪問用戶,通過內存索引,減少硬盤文件索引時間和文件讀取時間,提高文件命中率,降低后端服務器IO的資源占用,保證高效地對外發布。
2.Squid是使用反向代理技術,只向后端的源服務器請求數據,不允許通過其他途徑對內存里的數據進行更改,因此不會因為網絡應用漏洞導致文件內容被篡改,保障了網站靜態文件的安全可靠。
3.通過Squid中的Gzip模塊,對緩存的靜態文件進行壓縮,減少靜態文件占用的空間,進而減少靜態文件訪問對網絡帶寬的消耗,降低了網絡使用成本。
二、使用全局文件系統對網站靜態內容集中存儲、歸檔
隨著網站靜態文件發布量逐年增大,其占用的存儲空間也不斷增大。靜態文件發布所在的存儲位置零散,文件存儲規則各異,目錄里的文件雜亂,導致網站歷史數據無法集中保存。通過Linux全局文件系統(GFS)對網站靜態文件集中存儲、歸檔,可以提高網站應用服務器的使用效率,保障網站靜態文件數據安全與完整。
Linux全局文件系統是基于Linux集群的文件系統,全稱是Linux Global File System。部署時使用3臺服務器組成靜態內容存儲集群連接網絡存儲設備(IP SAN),同時使用同一邏輯分區,共享分區里的目錄和文件,這樣就能通過相互協商的方式同時對分區內的目錄和文件進行寫和讀,在文件系統發生錯誤時,可以使用網絡存儲的快照與回溯對數據進行及時的恢復。
當靜態內容存儲集群中的服務器發生寫入沖突時,即同時對同一文件進行寫入,集群會根據集群成員的投票結果,對異常的服務器采取離線重啟的措施,這樣可以避免2臺服務器對同一文件寫入造成的文件損壞,保障了文件的安全可靠。靜態內容存儲集群還可以根據訪問的請求在線增加新的服務器,滿足了靜態文件不斷增多、訪問量日益增大的壓力。
在靜態內容存儲集群中,將原來分布于各個獨立服務器上的靜態文件集中保存到網絡存儲中,根據特定的規則對內容進行分類保存,這樣既提供了統一的對外發布功能,又能對網站靜態文件進行集中的存儲,提高網站靜態文件發布效率,還能對靜態文件進行歸檔備份和管理,保障了靜態文件的安全。
三、對網站動態程序分類,部署應用程序集群
由于網站的發展經歷了數年,使用的網站程序系統種類繁多,每種網站程序系統又有不同的版本,它們對服務器、操作系統、系統環境的需求各異。為了保障網站應用程序系統高效穩定,經過對目前正在運行的網站應用程序系統整理分類,部署以下幾類應用程序集群:
1.Windows Server平臺下的ASP、ASP.NET應用程序集群和JAVA應用程序集群,根據不同的程序分配不同的用戶權限、應用程序池,確保每個應用之間不會產生干擾,同一套程序系統分別部署在兩臺甚至多臺服務器上,使用應用負載均衡根據域名、請求路徑等策略選擇服務器,未被選中的服務器作為備用,隨時接替發生故障的服務器。
2.Linux平臺下的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、ASP.NET應用程序集群提供高效、穩定、安全的數據庫服務,配置數據庫維護計劃對數據庫文件進行近線和離線備份,確保數據庫文件的安全。
3.使用Oracle RAC數據庫集群套件部署Oracle真正應用集群(Oracle Real Application Cluster)。部署時使用2臺服務器通過網絡存儲為前端JAVA應用服務集群提供強大的數據庫服務,也提供了大型數據倉儲和數據分析服務,為網站的大型應用可靠穩定地對外服務提供了保障。
通過以上的優化和調整,荊楚網目前能有效減少網頁文件無法訪問的出現幾率,各個應用系統的整體可靠性提高了60%,應用系統的效率提高了30%,在滿足現有系統高效運行的情況下,節約了7臺服務器。同時,極大地降低了應用系統的故障時間和影響,為下一步進行服務器應用虛擬化集群部署提供了基本條件,也確保與提高了網站的服務水平。
【網站后端應用系統架構的優化】相關文章:
企業應用系統架構優化方法09-20
Web系統架構的性能優化08-28
流媒體系統架構的應用09-06
高校數字廣播系統架構與應用11-03
數字化校園應用系統架構08-16
系統架構設計師:優化顯示速度09-21
存儲架構體系發展在電信支撐系統中的應用09-22
秒殺系統架構分析09-22
智慧健康系統架構09-01
什么是系統架構師-如何成為系統架構師08-10