其實大規模網站並沒有什麼神奇之處,主要看你的思維和視野(在考慮成本的情況下),主要體現個人認為在於拆和分,就是把一個複雜的問題儘可能的拆分成幾個部分,現在MS和開源已經為我們做了很多工作,我們大多時候僅是在關注如何整合現有的資源,下面是我為XXX企業所做的體繫結構設計。由於時間關係寫的比較亂,具體參考圖來理解。
XXX企業專案分析:
一、特徵分析
1、使用者特徵:
遊客(互連網) 1000萬以上
企業使用者 (需要登入認證) 10萬左右
個人使用者(需要登入認證) 1000萬左右
2、資料特徵:
門戶網站新聞資料 (資料量不大)
業務資料 (單項業務指標最大值在5400萬/月)
資料來源於內部網路與互連網物理隔離
由於曆史原因資料由不同系統產生,格式多樣化
3、網路特徵:
內部網路與外部網路通過網閘進行單工通訊(只能從內到外)
4、安全特徵:
資料涉密敏感
5、使用特徵:
部分資料即時性要求較高
二、解決方案
1、安全性(IDS、DDOS防互、病毒掃描軟體、防火牆、漏洞掃描器、系統及應用軟體補丁等)
2、可靠性(硬體NLB、磁碟陣列、UPS、IPCP)
3、效能
多台高效能伺服器,採用SQUID作為WEB加速器、MEMORYCACHE做為資料緩衝容器、獨立檔案伺服器儲存圖片、附件等
採用GZIP壓縮、CSS Sprits、圖片壓縮、局部頁面靜態化、DIV+CSS標準加快Brower渲染速度
4、應用支撐
當前採用.net 3.5 +Windows 2003 +Oracle 10G +IIS6.0
後續將升級.net 3.5 +Windows 2008 +Oracle 10G +IIS7.0(藉助IIS7.0的一些新特性)
5、開發支撐
採用ASP.NET MVC 做為前端表現層、WCF做為通訊解決方案、enitity framework+ELB作為資料持久層、quartz做為調度輪詢、log4net做為Tlog、
castle IOC做為容器、postSharp做AOP、jquery做指令碼架構、Log Parse和awstat做日誌分析、自訂異常處理組件整合log4net、MS ESB 做資料交換軟匯流排
三、架構圖