SpringCloud Alibaba實戰(2:電商系統業務分析)


選用了很常見的電商業務來進行SpringCloud Alibaba的實戰。

當然,因為僅僅是為了學習SpringCloud Alibaba,所以對業務進行了大幅度簡化,這里只取一個精簡版的用戶下單業務。

1、電商業務流程

電商系統下單業務流程圖:

電商系統下單業務

這個流程同樣進行了簡化,一般瀏覽完商品可能不會直接下單,而是先加入購物車,這里我們略去了這一環節。

接下來,我們要對業務進行細化,可以通過時序圖來對業務流程進行細化。

用戶下單示意圖

2、扣庫存時機

注意看,在我們的泳道圖中,扣庫存是在用戶下訂單之后。

在電商系統里,扣庫存一般主要有兩種方式:

  • 下單扣庫存:下單扣庫存是用戶體驗比較好的方式,避免用戶支付的時候發現庫存不足。缺點是不合適商品庫存有限的情況,因為未付款的訂單會影響到其他人購買這款商品。
  • 支付扣庫存:支付扣庫存對用戶體驗很不好,因為用戶可能在支付的時候發現庫存不足。但是比較適合秒殺一類的業務,避免未支付的訂單占用庫存。

但是下單減庫存應該設置一個超時的時間,如果在一定時間內沒有完成支付,那么就應該及時釋放庫存。

zai

3、電商業務流程模塊划分

通過上面的時序圖,我們對電商下單的業務已經有了一個比較清楚的認識,接下來,對具體的業務模塊進行划分:

  • 1、用戶模塊:需要有一個用戶服務,用於用戶基本信息的管理,包括用戶名、等級等等。
  • 2、商品模塊:用戶瀏覽商品,需要有一個 商品模塊來支撐,給用戶展示商品的介紹、價格等等這些信息。
  • 3、訂單模塊:用戶下單需要訂單模塊來創建訂單。
  • 4、支付模塊:訂單創建完成,需要用戶付款,這里需要有一個 支付模塊 來實現支付功能,用戶成功完成支付之后,需要把訂單的狀態變更為 「已支付」。
  • 5、庫存模塊:支付完成,就需要運營人員發貨,這個步驟,需要扣減對應商品的庫存數量,所以要有庫存模塊,發貨完成后,還需要把訂單狀態變更為「已發貨」。

當然,真實的業務比這要復雜很多,我們只考慮一個簡單的用戶下單業務,所以主要業務模塊就是這些。

用戶下單業務模塊划分

我們采用縱向划分的服務划分方式,以義務為維度,對服務進行划分。


"簡單的事情重復做,重復的事情認真做,認真的事情有創造性地做!"——

我是三分惡,可以叫我老三/三分/三哥/三子,一個能文能武的全棧開發,咱們下期見!



參考:

【1】:小專欄 SpringCloudAlibaba微服務實戰

【2】:電商系統是如何設計的?

【4】:詳解:電商前端庫存邏輯的設計


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM