1. 程式人生 > >電商專案總結

電商專案總結

電商行業技術特點

技術新、技術範圍廣、分散式、高併發、叢集、負載均衡、高可用、海量資料、業務複雜、系統安全

電商模式:
B2B:商家到商家。阿里巴巴,慧聰網、銘萬網。
B2C:商家到使用者。京東
C2C:使用者到使用者。淘寶。
B2B2C:商家到商家到使用者。天貓。
O2O:線上到線下。百度外賣、美團、餓了麼。

專案功能總結:

後臺管理系統:管理商品、類目以及內容釋出等功能。

前臺系統:使用者可以在前臺系統中進行註冊、登入、瀏覽商品、首頁、下單等操作。

訂單系統:提供下單、查詢訂單、修改訂單狀態、定時處理訂單。

搜尋系統:提供商品的搜尋功能。

單點登入系統:為多個系統之間提供使用者登入憑證以及查詢登入使用者的資訊。

傳統架構的弊端(併發量):

一個tomcat只有500個併發量,故考慮用ngnix做tomcat叢集與負載均衡。

當tomcat叢集中節點數量增加,服務能力先增加後下降。所以叢集中節點數量不能太多,一般也就5個左右

tomcat叢集導致的session共享問題,如一個使用者登入使用者資訊需要儲存在session中,使用Redis解決(所有tomcat共享redis)

若想獲取更高的併發量,需要按照功能點把系統拆分,拆分成獨立的功能。單獨為某一個節點新增伺服器叢集。需要系統之間配合才能完成整個業務邏輯。叫做分散式

分散式架構:把系統按照模組拆分成多個子系統。多個子系統相互協作才能完成業務流程。系統之間需要進行通訊。

叢集:同一個工程部署到多臺伺服器上。

優點:

1、把模組拆分,使用介面通訊,降低模組之間的耦合度。

2、把專案拆分成若干個子專案,不同的團隊負責不同的子專案。

3、增加功能時只需要再增加一個子專案,呼叫其他系統的介面就可以。

4、可以靈活的進行分散式部署。

缺點:

1、系統之間互動需要使用遠端通訊,介面開發增加工作量。

2、各個模組有一些通用的業務邏輯無法共用。

SOA:Service OrientedArchitecture面向服務的架構。也就是把工程拆分成服務層、表現層兩個工程。服務層中包含業務邏輯,只需要對外提供服務即可。表現層只需要處理和頁面的互動,業務邏輯都是呼叫服務層的服務來實現

專案開發工具:

MyEclipse + Maven+svn+ssm+dubbo+redis+solr+activemq

Maven的常見打包方式:jar、war、pom
Pom工程一般都是父工程,管理jar包的版本、maven外掛的版本、統一的依賴管理。聚合工程。

Taotao-parent:父工程,打包方式pom,管理jar包的版本號。

|--Taotao-common:通用的工具類通用的pojo。打包方式jar

|--Taotao-manager:服務層工程。聚合工程。Pom工程

|--taotao-manager-dao:打包方式jar

|--taotao-manager-pojo:打包方式jar

|--taotao-manager-interface:打包方式jar

|--taotao-manager-service:打包方式:war

|--taotao-manager-web:表現層工程。打包方式war

使用mybatis官方提供的mybatis-generator生成pojo、mapper介面及對映檔案。供整個專案使用

並且將pojo放到toatao-manager-pojo工程中。

將mapper介面及對映檔案放到taotao-manager-dao工程中。

如何實現遠端通訊?

1、Webservice:效率不高基於soap協議。專案中不推薦使用。

2、使用restful形式的服務:http+json。很多專案中應用。如果服務太多,服務之間呼叫關係混亂,需要治療服務。

3、使用dubbo。使用rpc協議進行遠端呼叫,直接使用socket通訊。傳輸效率高,並且可以統計出系統之間的呼叫關係、呼叫次數。

  • 單一應用架構
    • 當網站流量很小時,只需一個應用,將所有功能都部署在一起,以減少部署節點和成本。
    • 此時,用於簡化增刪改查工作量的 資料訪問框架(ORM) 是關鍵。
  • 垂直應用架構
  • 當訪問量逐漸增大,單一應用增加機器帶來的加速度越來越小,將應用拆成互不相干的幾個應用,以提升效率。
  • 此時,用於加速前端頁面開發的 Web框架(MVC) 是關鍵。
  • 分散式服務架構
  • 當垂直應用越來越多,應用之間互動不可避免,將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。
  • 此時,用於提高業務複用及整合的 分散式服務框架(RPC) 是關鍵。
  • 流動計算架構
  • 當服務越來越多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增加一個排程中心基於訪問壓力實時管理叢集容量,提高叢集利用率。
  • 此時,用於提高機器利用率的 資源排程和治理中心(SOA) 是關鍵。

Dubbo就是資源排程和治理中心的管理工具。