天天看點

設計高并發的電子商店

如果你對項目管理、系統架構有興趣,請加微信訂閱号“softjg”,加入這個PM、架構師的大家庭

閑暇之餘準備開發一套電子商店的網站,要求能夠面對大資料量,高并發。我會将實作的全過程記錄下來,并通過部落格分享給大家,當然最後也會把這個電子商店網站免費開源,希望大家多多拍磚。

  • 我們的電子商店都準備實作哪些功能子產品呢?
  1. 商品管理
  2. 商品類别管理
  3. 打折管理
  4. 評價管理
  5. 訂單管理
  6. 網站菜單管理
  7. 首頁五圖連播管理
  8. 内容管理
  9. 權限管理

較長的描述,等我們下一個章節再說說道說道......

  • 首先從架構上考慮,我們采用四層的面向服務的架構:
設計高并發的電子商店

一個标準的四層架構包含如下四個部分:

  1. 商店應用程式展示層,負責商店應用程式與客戶的互動
  2. 服務層,負責與商店應用程式進行資料互動
  3. 業務邏輯層,負責處理系統的業務
  4. 資料通路層,負責處理資料,與不同的資料庫打交道
  • 然後從項目元件上考慮,我們建立10個項目:
設計高并發的電子商店

App——電子商店前台頁面展示

是BS架構的項目,選擇最新的MVC4架構。

BLL——業務邏輯

業務邏輯的操作,包括業務處理,事務等。

DAL——資料通路

資料庫通路的操作,資料實體,資料校驗,使用Entity Framework。

IBLL——業務接口

業務邏輯層的方法對外暴露的接口和服務契約。如:App項目和Shop項目。

Common——公共元件

整個應用程式使用的公共輔助方法。

ModelingProject——模型設計

在此設計項目的圖例,如:架構圖。

WcfHost——服務宿主

為電子商店前台系統的服務提供宿主,使用微軟WCF技術。

WFActivitys——工作流活動層

定義了工作流的活動,使用微軟WF技術。

WFDesigner——工作流設計器

實施人員自由配置工作流的設計器,使用微軟WPF技術。

Shop——電子商店背景應用程式

是BS架構的項目,選擇最新的MVC4架構。使用EesyUI腳本庫。

  • 然後從實體部署上考慮,我們采用分布式部署:
設計高并發的電子商店

客戶:

客戶從浏覽器通路我們的商店應用程式伺服器,商店應用程式再通過請求圖檔伺服器(圖檔部分)和提供服務的伺服器(資料部分),将兩部分整合後發回給客戶浏覽器;

背景管理人員:

管理人員從浏覽器通路我們的背景應用程式伺服器,通過背景應用程式管理圖檔伺服器(圖檔部分)和資料庫伺服器(資料部分)的資源。

我想至此,你應該明白了(一)中,為什麼背景應用程式直接通路業務邏輯層,而商店應用程式需要通過服務層通路業務邏輯層了,因為伴随資料通路量增大,我們可以将服務根據功能需要,部署在多個伺服器上,以緩解通路壓力,而背景應用程式不會出現通路量增大的現象。

如果你對項目管理、系統架構有興趣,請加微信訂閱号“softjg”,加入這個PM、架構師的大家庭

繼續閱讀