分布式高併發商品秒殺系統設計

2021-09-24 05:22:43 字數 1476 閱讀 3388

本專案為另乙個專案seckill的分布式改進版本,dis-seckill意為:distributed seckill,即分布式秒殺系統。

商品秒殺與其他業務最大的區別在於:

除了具有以上特點,秒殺商品還需要完成正常的電子商務邏輯,即:(1)查詢商品;(2)建立訂單;(3)扣減庫存;(4)更新訂單;(5)付款;(6)賣家發貨。

本專案正是基於上述業務特點進行設計的,在專案中引入諸多優化手段,使系統可以從容應對秒殺場景下的業務處理。

另外,專案seckill為單體應用,在大併發情形下處理能力有限,所以本專案對其進行分布式改造,對職責進行劃分,降低單體應用的業務耦合性。

在安裝之前,需要安裝好上述構建工具和開發環境,推薦在linux下安裝上述開發環境。

第一步;完成資料庫的初始化,使用./dis-seckill-common/schema/seckill.sql初始化資料庫。

第二步;如果安裝了git,則可以採用下面的方式快速啟動;

git clone [email protected]:grootzz/dis-seckill.git

mvn clean package

啟動使用者服務:

jar dis-seckill-user/target/dis-seckill-user-0.0.1-snapshot.jar
啟動商品服務:

jar dis-seckill-goods/target/dis-seckill-goods-0.0.1-snapshot.jar
啟動訂單服務:

jar dis-seckill-order/target/dis-seckill-order-0.0.1-snapshot.jar
啟動快取服務:

jar dis-seckill-cache/target/dis-seckill-cache-0.0.1-snapshot.jar
啟動訊息佇列服務:

jar dis-seckill-mq/target/dis-seckill-mq-0.0.1-snapshot.jar
啟動閘道器服務:

jar dis-seckill-gateway/target/dis-seckill-gateway-0.0.1-snapshot.jar
如果將專案匯入ide中進行構建,則分別按上面的順序啟動服務即可。

第三步;訪問專案入口位址

初始使用者手機號碼:18342390420,密碼:000000

分布式高併發系統設計檢查列表

這個檢查表包含的內容是在設計階段必須考慮的,並且在開始實現之前必須驗證 以下檢查項是所有微服務都必須滿足的一般架構檢查 檢查項 描述無狀態服務 所有永續性資料都儲存在容器外部 部署順序 服務啟動不應該有順序 資料擁有權 只有資料維護服務才能直接訪問資料,避免多個服務管理同乙份資料 如果安全性較低,客...

高併發分布式佇列設計

訊息佇列提供了分布式集群系統架構中各個服務模組之間的訊息通訊,主 要解決應用解耦,非同步訊息,流量削鋒等問題,實現高效能,高可用,可伸縮 和最終一致性架構,其模型如下 應用解耦 模組之間僅依賴 通知 而沒有直接的介面呼叫,所以不存在依賴 可擴充套件性 佇列支援高可用部署,水平擴充套件容量和吞吐量 生...

高併發與分布式

一提到高併發很多人就會想到分布式,那麼二者到底有什麼區別呢?併發和分布是完全不同的概念。分布是將任務分發到不同的點上去,一般分布式最多的就是分布式計算。通過某種分布式程式設計方式,在不同的系統上利用各自的cpu,記憶體等進行計算,將結果匯集至控制中心,進行處理。比如最有名的就是分布式計算天氣的氣候阿...