Web前端系統
為了達到不同應用的服務器共享避免單點故障集中管理統一配置等目的不以應用劃分服 務器而是將所有服務器做統一使用每台服務器都可以對多個應用提供服務當某些應用訪問量升高時通過增加服務器節點達到整個服務器集群的性能提高同時使他應用也會受益
該Web前端系統基於IIS/ASPNET等的虛擬主機平台提供PHP程序運行環境服務器對開發人員是透明的不需要開發人員介入服務器管理
負載均衡系統
負載均衡系統分為硬件和軟件兩種硬件負載均衡效率高但是價格貴比如F等軟件負載均衡系統價格較低或者免費效率較硬件負載均衡系統低不過對於流量一般或稍大些網站來講也足夠使用比如lvsnginx大多數網站都是硬件軟件負載均衡系統並用
數據庫集群系統
由於Web前端采用了負載均衡集群結構提高了服務的有效性和擴展性因此數據庫必須也是高可靠的才能保證整個服務體系的高可靠性如何構建一個高可靠的可以提供大規模並發處理的數據庫體系?
我們可以采用如上圖所示的方案
)使用SQL數據庫考慮到Web應用的數據庫讀多寫少的特點我們主要對讀數據庫做了優化提供專用的讀數據庫和寫數據庫在應用程序中實現讀操作和寫操作分別訪問不同的數據庫
)使用同步機制實現快速將主庫(寫庫)的數據庫復制到從庫(讀庫)一個主庫對應多個從庫主庫數據實時同步到從庫
)寫數據庫有多台每台都可以提供多個應用共同使用這樣可以解決寫庫的性能瓶頸問題和單點故障問題
)讀數據庫有多台通過負載均衡設備實現負載均衡從而達到讀數據庫的高性能高可靠和高可擴展性
)數據庫服務器和應用服務器分離
)從數據庫使用BigIP做負載均衡
緩存系統
緩存分為文件緩存內存緩存數據庫緩存在大型Web應用中使用最多且效率最高的是內存緩存最常用的內存緩存工具是Memcachd使用正確的緩存系統可以達到實現以下目標
使用緩存系統可以提高訪問效率提高服務器吞吐能力改善用戶體驗
減輕對數據庫及存儲集服務器的訪問壓力
Memcached服務器有多台避免單點故障提供高可靠性和可擴展性提高性能
分布式存儲系統
Web系統平台中的存儲需求有下面兩個特點
) 存儲量很大經常會達到單台服務器無法提供的規模比如相冊視頻等應用因此需要專業的大規模存儲系統
) 負載均衡cluster中的每個節點都有可能訪問任何一個數據對象每個節點對數據的處理也能被其他節點共享因此這些節點要操作的數據從邏輯上看只能是一個整體不是各自獨立的數據資源
因此高性能的分布式存儲系統對於大型網站應用來說是非常重要的一環(這個地方需要加入對某個分布式存儲系統的簡單介紹)
分布式服務器管理系統
隨著網站訪問流量的不斷增加大多的網絡服務都是以負載均衡集群的方式對外提供服務隨之集群規模的擴大原來基於單機的服務器管理模式已經不能夠滿足我們的需求新的需求必須能夠集中式的分組的批量的自動化的對服務器進行管理能夠批量化的執行計劃任務
在分布式服務器管理系統軟件中有一些比較優秀的軟件其中比較理想的一個是Cfengine它可以對服務器進行分組不同的分組可以分別定制系統配置文件計劃任務等配置
它是基於C/S 結構的所有的服務器配置和管理腳本程序都保存在Cfengine Server上而被管理的服務器運行著 Cfengine Client程序Cfengine Client通過SSL加密的連接定期的向服務器端發送請求以獲取最新的配置文件和管理命令腳本程序補丁安裝等任務
有了Cfengine 這種集中式的服務器管理工具我們就可以高效的實現大規模的服務器集群管理被管理服務器和 Cfengine Server可以分布在任何位置只要網絡可以連通就能實現快速自動化的管理
代碼分發系統
隨著網站訪問流量的不斷增加大多的網絡服務都是以負載均衡集群的方式對外提供服務隨之集群規模的擴大為了滿足集群環境下程序代碼的批量分發和更新我們還需要一個程序代碼發布系統
這個發布系統可以幫我們實現下面的目標
) 生產環境的服務器以虛擬主機方式提供服務不需要開發人員介入維護和直接操作提供發布系統可以實現不需要登陸服務器就能把程序分發到目標服務器
) 我們要實現內部開發內部測試生產環境測試生產環境發布的個開發階段的管理發布系統可以介入各個階段的代碼發布
) 我們需要實現源代碼管理和版本控制SVN可以實現該需求
這裡面可以使用常用的工具Rsync通過開發相應的腳本工具實現服務器集群間代碼同步分發
From:http://tw.wingwit.com/Article/program/net/201311/13803.html