秒殺項目2.0

基于 SpringBoot+Mybatis+Redis+RabbitMQ 秒殺系統(tǒng)

項目特點

  • 系統(tǒng)極致優(yōu)化
    瀏覽器緩存/Nginx緩存/ 頁面緩存/ 對象緩存/RabbitMQ隊列異步下單,減少網(wǎng)絡流量,減輕數(shù)據(jù)庫壓力,全面提升系統(tǒng)并發(fā)處理能力
  • 深入微服務技能
    SpringBoot/ RabbitMQ /Redis/ MySQL , 基于時下最火熱的Java微服務框架
  • 分布式系統(tǒng)方案
    從單機到集群,易于橫向擴展只需增加服務器即可應對更大的流量和并發(fā)
  • 安全策略
    圖形驗證碼、限流防刷、接口地址隱藏 , 多種安全機制拒絕機器人刷票黨

開發(fā)環(huán)境

  • JDK
  • mysql
  • springboot
  • redis
  • rabbitmq

項目啟動說明

1、啟動前,請配置 application.properties 中相關redis、mysql、rabbitmq地址,并導入數(shù)據(jù)庫,數(shù)據(jù)庫在項目db文件夾中。 默認前端登錄賬號:12345678910 密碼:123456

2、登錄地址:http://localhost:8080/login/to_login

3、商品秒殺列表地址:http://localhost:8080/goods/to_list

其它說明

1、優(yōu)化如下:

  • 使用分布式Seesion,讓多臺服務器可以響應。
  • 使用redis做緩存提高訪問速度和并發(fā)量,減少數(shù)據(jù)庫壓力。
  • 使用頁面靜態(tài)化,緩存頁面至瀏覽器,前后端分離降低服務器壓力。。
  • 使用不同層級、不同粒度的緩存Redis預減庫存、消息隊列異步下單逐級削減對數(shù)據(jù)庫的訪問
  • 安全性優(yōu)化:雙重md5密碼校驗,秒殺接口地址的隱藏,接口限流防刷,數(shù)學公式驗證碼。

頁面截圖

登錄頁


image.png

商品列表情頁


image.png

商品詳情頁


image.png

訂單詳情頁


image.png

項目接口流程說明

獲取秒殺接口

獲取秒殺接口

執(zhí)行秒殺

執(zhí)行秒殺

登錄注冊流程

登錄,雙重md5加密

接口限流流程

接口限流流程

前端流程

  • 點擊商品詳情,訪問商品詳情接口。該接口返回商品是否開啟秒殺,沒有開啟則返回秒殺時間。
  • 當商品開啟秒殺時,填入驗證碼信息,點擊秒殺按鈕,先去訪問獲取秒殺路徑,獲取path路徑,然后根據(jù)path路徑訪問執(zhí)行秒殺接口非阻塞的返回結(jié)果,再去異步輪訓訪問秒殺結(jié)果接口,根據(jù)秒殺結(jié)果接口去判斷秒殺成功或者失敗。

github/博客地址

博客地址

github

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。