電商行業技術特點
Ø 技術新
Ø 技術範圍廣
Ø 分布式
Ø 高並發、叢集、負載平衡、高可用
Ø 海量資料
Ø 業務複雜
Ø 系統安全
分布式:一件事情,拆開來做
叢集:同樣的事情,大家一起做 1. 淘淘商城系統功能 1.1. 系統功能圖
1. 系統架構 1.1. 傳統架構 1.1.1. 500並發
存在的問題:
1、功能耦合度高
2、系統維護成本高
3、如果並發量大,無法解決高並發的問題
電商的高並發1000以上
存在的問題:
1、系統無法有效進行水平擴充(叢集不能針對功能模組)圖5.1
2、使用者存在重複登入的問題
針對第二點:需要session共用,是以session廣播的形式,比較消耗資源,寬頻。
如果要達到10000並發
需要20台伺服器做tomcat叢集。當tomcat叢集中節點數量增加,服務能力先增加後下降。
所以叢集中節點數量不能太多,一般也就5個左右。
需要按照功能點把系統拆分,拆分成獨立的功能工程,可以單獨為某一個節點添加伺服器,需要系統之間配合才能完成整個商務邏輯這就叫做分布式。
叢集:相當於同一個工程代碼拷貝多份部署到多台伺服器,每台伺服器單獨獨立部署運行。
分布式架構:
把系統按照模組拆分成多個子系統;多個子系統相互協作才能完成商務程序系統之間需要進行通訊。
優點:
1、把模組拆分,使用介面通訊,降低模組之間的耦合度。
2、把項目拆分成若干個子項目,不同的團隊負責不同的子項目。
3、增加功能時只需要再增加一個子項目,調用其他系統的介面就可以。
4、可以靈活的進行分布式部署。
缺點:
1、系統之間互動需要使用遠程通訊,需要開發介面,增加工作量。
2、各個模組有一些通用的商務邏輯無法公用。 1.1.1.
基於SOA的架構
SOA:Service Oriented Architecture面向服務的架構。也就是把工程都拆分成服務層工程、表現層工程。服務層中包含商務邏輯,只需要對外提供服務即可。表現層只需要處理和頁面的互動,商務邏輯都是調用服務層的服務來實現。工程都可以獨立部署。
1.1. 淘淘商城系統架構
2. 技術選型和開發環境 2.1. 技術選型
Ø Spring、SpringMVC、Mybatis
Ø JSP、JSTL、jQuery、EasyUI、KindEditor(富文字編輯器)
Ø Redis(快取服務器,單點登入,購物車)
Ø Solr(搜尋)
Ø dubbo(分布式服務架構)
Ø HttpClient(HTTP協議訪問用戶端)
Ø ActiveMQ(訊息佇列)
Ø Quartz(定時任務)
Ø FastDFS(圖片伺服器)
Ø FreeMarker(網頁靜態化)
Ø Nginx(反向 Proxy伺服器)
Ø MyCat(資料庫中介軟體) 2.2. 開發工具版本和環境
Ø Eclipse Mars.2
Ø Maven 3.3.9
Ø Tomcat 7.0.72(Maven Tomcat Plugin)
Ø JDK 1.7
Ø Mysql 5.7
Ø Dubbo 2.5.3
Ø Nginx 1.8.0
Ø Redis 3.0.0
Ø ActiveMQ 5.13.0
Ø Win7作業系統
Ø SVN(版本管理)