springboot項目推薦------秒殺基礎項目

項目名稱

秒殺項目
地址:https://github.com/steamyao/seckill
用途:爲了學習多線程併發的知識,模擬多線程秒殺環境

上手指南

開發環境

springboot 2.1
IDEA
maven 3.6
kafka 2.1
redis 3.0
zookeeper
jdk 8.0
mysql8.0(這個不重要,換一個mysql-connection的jar包就行)

你將學到
  • 搭建springboot 2.1框架
  • 整合redis、kafka
  • 數據庫樂觀。悲觀鎖、
  • 線程池及多線程相關的知識
  • 整合 swagger 2.0
  • redis與zookeeper 分佈式鎖的使用

安裝步驟

1.在 application.properties 修改服務端口、redis、zookeeper。kafka、mysql地址。\
2 在 lock 包中修改 redis、zookeeper 地址,這個包是分佈式鎖的,做成了Utils類。

項目展示

1.前端頁面展示
在這裏插入圖片描述
2.後臺頁面
在這裏插入圖片描述
3.數據庫
在這裏插入圖片描述

補充

  1. 在悲觀鎖一的實現中,由於加了事務,會出現死鎖與事務回退(不會超賣),不加會出現超賣,所有會報出 Deadlock found when trying to get lock; try restarting transaction 異常
  2. 數據庫樂觀鎖二 超賣嚴重,這個屬於樂觀鎖的問題。
  3. 秒殺時將成功的用戶加入隊列,然後用定時任務寫入數據庫。要經過一定的時間(10s),纔會將秒殺成功的用戶信息寫回數據庫。
  4. 最後一個秒殺,是通過 Jmeter 模擬多個線程來訪問,最高可以承受 100000 個線程,也不會出錯,基本功能實現了。

鳴謝

該項目參考了 小柒2012springboot-seckill
感謝閱讀!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章