一、淘淘商城創建(架構設計概要)
1.傳統架構和 分佈式架構和 面向服務架構對比
傳統架構
併發量:500
存在的問題:
1、功能耦合度高
2、系統維護成本高
3、如果併發量大,無法解決高併發的問題
傳統架構的優化
搭建tomcat集羣 使用nginx做負載均衡
併發量此時升級爲1000
存在的問題:
1、系統無法有效進行水平擴展(集羣不能針對功能模塊)
2、用戶存在重複登錄的問題
針對第二點:需要session共享,是以session廣播的形式,比較消耗資源,寬帶。
如果要達到10000併發
需要20臺服務器做tomcat集羣。當tomcat集羣中節點數量增加,服務能力先增加後下降。
所以集羣中節點數量不能太多,一般也就5個左右(2500併發量)
分佈式架構
需要按照功能點把系統拆分,拆分成獨立的功能工程,可以單獨爲某一個節點添加服務器,需要系統之間配合才能完成整個業務邏輯這就叫做分佈式。
併發量 :10000
集羣:相當於同一個工程代碼拷貝多份部署到多臺服務器,每臺服務器單獨獨立部署運行。
分佈式架構:
把系統按照模塊拆分成多個子系統;多個子系統相互協作才能完成業務流程系統之間需要進行通信。
優點:
1、把模塊拆分,使用接口通信,降低模塊之間的耦合度。
2、把項目拆分成若干個子項目,不同的團隊負責不同的子項目。
3、增加功能時只需要再增加一個子項目,調用其他系統的接口就可以。
4、可以靈活的進行分佈式部署(方便系統的擴展)。
缺點:
1、系統之間交互需要使用遠程通信,需要開發接口,增加工作量。
2、各個模塊有一些通用的業務邏輯無法公用(存在某一功能重複開發的問題 例:訂單系統和後臺管理系統可能都使用了操作商品的dao,service,此時的dao,service,重複開發,造成冗餘)。
基於SOA(面向服務)的架構
SOA:Service Oriented Architecture面向服務的架構。也就是把工程都拆分成服務層工程、表現層工程。服務層中包含業務邏輯,只需要對外提供服務即可。表現層只需要處理和頁面的交互,業務邏輯都是調用服務層的服務來實現。工程都可以獨立部署。
與分佈式相比 此時 訂單系統和後臺管理系統可以共用商品服務
優點
1.功能模塊升級方便(易於擴展) 系統之間進一步降低耦合度
2.服務重用度增強 進一步降低開發成本和維護成本
3.可以靈活的進行分佈式部署
二、淘淘商城架構定型
表現層(處理用戶請求,請求參數的處理,頁面的展示)
服務層 (數據的持久化,數據庫的查詢,操作redis緩存,使用activeMQ做系統之間的通訊)
表現層和服務層之間的調用 使用dobbo