程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> 設計高並發的電子商店 四層面向服務的架

設計高並發的電子商店 四層面向服務的架

編輯:更多關於編程

    閒暇之余准備開發一套電子商店的網站,要求能夠面對大數據量,高並發。我會將實現的全過程記錄下來,並通過博客分享給大家,當然最後也會把這個電子商店網站免費開源,希望大家多多拍磚。

    我們的電子商店都准備實現哪些功能模塊呢?

    設計高並發的電子商店 四層面向服務的架 三聯

    詳細描述,等我們下一個章節再說說道說道...... 

    首先從架構上考慮,我們采用四層的面向服務的架構:

    一個標准的四層架構包含如下四個部分:

    然後從物理部署上考慮,我們采用分布式部署:

    我們的目的就是伴隨著訪問量的增加,無需更改程序,只需增加服務器個數,就可以達到高並發的目的。

    客戶:

    客戶從浏覽器訪問我們的商店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

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved