閑暇之餘準備開發一套電子商店的網站,要求能夠面對大資料量,高並發。我會將實現的全過程記錄下來,並通過部落格分享給大家,當然最後也會把這個電子商店網站免費開源,希望大家多多拍磚。
我們的電子商店都準備實現哪些功能模組呢?
詳細描述,等我們下一個章節再說說道說道......
首先從架構上考慮,我們採用四層的面向服務的架構:
一個標準的四層架構包含如下四個部分:
然後從物理部署上考慮,我們採用分布式部署:
我們的目的就是伴隨著訪問量的增加,無需更改程式,只需增加伺服器個數,就可以達到高並發的目的。
客戶:
客戶從瀏覽器訪問我們的商店Web應用程式伺服器;
商店web應用程式採用Windows_Server_AppFabric技術,緩衝部分更改時效性不高的資料,和共用sessionstate
同時,手機,winform程式等可以通過wcf技術,訪問通過分布式服務的AppFabric伺服器擷取資料
將Web應用程式的分布式緩衝和提供分布式服務的AppFabric伺服器部署在一起,就是為了最大化的節省伺服器資源
資料庫採取讀寫分離的原則:
1.對於商品評論的資訊我們放在“從資料庫1”中,在商品詳細的頁面,直接從該資料庫擷取資料。
2.對於訂單的資訊我們放在“從資料庫2”中,在訂單查詢的頁面,直接從該資料庫擷取資料。
3.“從資料庫1”和“從資料庫2”都會在合適的時機同步到主要資料庫。
4.我們會根據業務開發出不同的服務,而不同的服務又可以使用更多的從資料庫,這樣方便以後的擴充。
圖片伺服器採用次層網域的形式對外提供圖片共用服務
後台管理員:
管理員從瀏覽器訪問我們的後台應用程式伺服器,通過後台應用程式管理圖片伺服器(圖片部分)和資料庫伺服器(資料部分)的資源。
我想至此,你應該明白了(一)中,為什麼後台應用程式直接存取商務邏輯層,而商店應用程式需要通過服務層訪問商務邏輯層了,因為伴隨資料訪問量增大,我們可以將服務根據功能需要,部署在多個伺服器上,以緩解訪問壓力,而後台應用程式不會出現訪問量增大的現象。
然後從項目組件上考慮,我們建立10個項目:
App——電子商店前台頁面展示
是BS架構的項目,選擇最新的MVC4架構。
BLL——商務邏輯
商務邏輯的操作,包括業務處理,事務等。
DAL——資料訪問
資料庫訪問的操作,資料實體,資料校正,使用Entity Framework。
IBLL——業務介面
商務邏輯層的方法對外暴露的介面和服務契約。如:App項目和Shop項目。
Common——公用組件
整個應用程式使用的公用輔助方法。
ModelingProject——模型設計
在此設計項目的圖例,如:架構圖。
WcfHost——服務宿主
為電子商店前台系統的服務提供宿主,使用微軟WCF技術。
WFActivitys——工作流程活動層
定義了工作流程的活動,使用微軟WF技術。
WFDesigner——工作流程設計工具
實施人員自由配置工作流程的設計器,使用微軟WPF技術。
Shop——電子商店後台應用程式
是BS架構的項目,選擇最新的MVC4架構。使用EasyUI指令碼庫。
選型
工具選擇VS2010 SP1 + SQL Server2008 + 狼奔代碼產生器
技術選擇EF + WF + WCF + MVC4 + EasyUI
參考資料
Windows_Server_AppFabric
狼奔代碼產生器
文/ben@langben@com