日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

购物网站和秒杀系统实现技术

發布時間:2023/12/13 综合教程 25 生活家
生活随笔 收集整理的這篇文章主要介紹了 购物网站和秒杀系统实现技术 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們需要兩個模塊,一個后臺Admin模塊,一個前臺Home模塊,利用ThinkPhp框架,自動生成MVC框架如圖6-2所示。

任何一個表單的操作,都需要前端驗證和后臺驗證,前端驗證是為了用戶體驗,使用javascript,后臺驗證是為了數據的完整性,使用php,最好的方法,是結合二者,就是ajax了。圖片上傳的部分,使用tp自帶的上傳類。

6.3 秒殺系統

秒殺系統其實是針對庫存做的系統。用戶成功秒殺商品,對于我們系統的操作就是減庫存和記錄用戶的購買明細。用戶的購買明細包括記錄誰購買成功、購買成功的時間和付款信息。而對于減庫存操作,需要考慮到以下兩個問題:

(1)若是用戶成功秒殺商品,我們記錄了其購買明細,卻沒有減庫存。會導致商品的超賣。

(2)減了庫存卻沒有記錄用戶的購買明細,導致商品的少賣。

對于上述兩個問題,可以通過MySQL內置的事務機制進行處理,它可以準確的幫我們完成減庫存和記錄用戶購買明細的過程。

對于秒殺系統,我們只是實現秒殺的一些功能:

(1)秒殺接口的暴露。

(2)執行秒殺的操作。

(3)相關查詢,比如說列表查詢,詳情頁查詢。

秒殺系統包括包括三個模塊的設計,DAO層、Service層和Web層的設計,另外考慮到系統高并發的問題,從而設計了系統高并發的處理。在系統設計之前,為了更好地理解系統的開發過程,對相關技術進行描述。

6.3.2 相關軟件包安裝

用Maven創建我們的項目seckill,然后使用IDEA打開該項目。在 main包下進行我們項目的代碼編寫及相關配置文件,test包下進行我們項目的測試。

秒殺系統的servlet版本為3.1,相關的第三發jar包通過pom文件添加,

6.3.2 DAO層

首先需要創建秒殺庫存表和秒殺成功明細表,如下所示:

基于MyBatis來實現我們設計的Dao層接口。首先需要配置我們的MyBatis,在resources包下創建MyBatis全局配置文件mybatis-config.xml文件。

配置文件創建好后我們需要關注的是Dao接口該如何實現,mybatis為我們提供了mapper動態代理開發的方式為我們自動實現Dao的接口。在mapper包下創建對應Dao接口的xml映射文件,里面用于編寫我們操作數據庫的sql語句,SeckillDao.xml和SuccessKilledDao.xml。

MyBatis和Spring的整合,整合目標:

(1)更少的編碼:只寫接口,不寫實現類。

(2)更少的配置:別名、配置掃描映射xml文件、dao實現。

(3)足夠的靈活性:自由定制SQL語句、自由傳結果集自動賦值。

在spring包下創建一個spring-dao.xml,用于配置dao層對象的配置文件,在resources包下創建jdbc.properties.xml,用于配置數據庫的連接信息,配置如下。

6.3.3 Service層

在Dao層我們只完成了針對表的相關操作,包括寫了接口方法和映射文件中的sql語句,并沒有編寫邏輯的代碼,例如對多個Dao層方法的拼接,當我們用戶成功秒殺商品時我們需要進行商品的減庫存操作(調用SeckillDao接口)和增加用戶明細(調用SuccessKilledDao接口),這些邏輯我們都需要在Service層完成。Dao層只進行數據的訪問操作,接下來我們便進行Service層代碼的編寫。秒殺Service接口設計如下:

(1)創建service包用于存放我們的Service接口和其實現類。

(2)創建exception包用于存放service層出現的異常,例如重復秒殺商品異常、秒殺已關閉等異常。

(3)創建dto包作為傳輸層, 用于完成web和service層的數據傳遞。

(4)創建entity包用于業務數據的封裝。

在dto包中創建Exposer.java,用于封裝秒殺的地址信息。SeckillExecution.java,用于判斷秒殺是否成功,成功就返回秒殺成功的所有信息(包括秒殺的商品id、秒殺成功狀態、成功信息、用戶明細),失敗就拋出一個我們允許的異常(重復秒殺異常、秒殺結束異常)。

然后需要在exception包下創建我們在秒殺業務過程中允許的異常,RepeatKillException.java用于處理重復的秒殺異常;SeckillCloseException.java用于處理秒殺關閉異常;SeckillException.java用于處理秒殺相關業務的異常。

在實現類SeckillServiceImpl.java中,我們用枚舉的方式將異常函數中返回的常量進行封裝,在enums包下創建一個枚舉類型SeckillStatEnum.java,用于返回state和stateInfo這兩個參數的相關數據。

使用Spring托管Service依賴配置:

在spring包下創建一個spring-service.xml文件,然后采用注解的方式將Service的實現類加入到Spring IOC容器中,然后在Service實現類的方法中,在需要進行事務聲明的方法上加上事務的注解,配置如下。

6.3.4 Web層

秒殺系統Web層主要涉及前端交互設計、Restful:url滿足Restful設計規范、Spring MVC、bootstrap+jquery這四個方面的開發。秒殺系統的前端交互流程設計如下圖6-3所示。

圖6-3 前端交互流程

整合配置Spring MVC框架:

在web.xml中進行我們前端控制器DispatcherServlet的配置,配置springMVC需要加載的配置文件spring-dao.xml,spring-service.xml和spring-web.xml,詳細配置如下。

完成Spring MVC的相關配置后,接下來就要基于Restful接口實現項目中的Controller開發。Controller中的每一個方法都對應我們系統中的一個資源URL,其設計應該遵循Restful接口的設計風格。在web包下創建一個SeckillController.java,內容如表6-11所示。

json數據的一個Vo類,即SeckillResult.java,在dto包中創建它,內容如下。

6.3.5 高并發的優化

秒殺系統面臨著如下問題:

(1)無法使用cdn緩存,因為系統邏輯不可能放在cdn中。

(2)后端緩存困難:庫存問題,因為運用到了mysql事務操作(設置聯合主鍵)。

(3)一行數據競爭:熱點商品,因為多個用戶同時對數據庫某條數據進行操作。

秒殺系統的優化方案:

(1)前端控制:暴露接口,按鈕防重復提交。

(2)動靜態數據分離:cdn緩存,后端Redis緩存。

(3)事務競爭優化:減少事務鎖時間,把客戶端邏輯放在mysql服務端,避免網絡延遲和GC的影響。 GC(Garbage Collection)垃圾回收機制

使用Redis優化地址暴露接口,在dao包下新建一個cache包,然后創建一個RedisDao.java函數,在spring-dao.xml中配置redisdao構造器。

針對網絡延遲和GC導致的并發問題,使用存儲過程,將整個事務放在mysql端完成,秒殺存儲過程實現如下。

最后,在ServiceService.java中建立存儲執行秒殺操作的函數,在SeckillDao.java實現該接口,在SeckillDao.xml中使用mybatis調用存儲過程,在服務端的SeckillServiceImpl.java完成配置即可。

總結

以上是生活随笔為你收集整理的购物网站和秒杀系统实现技术的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 麻豆av剧情| 三级大片在线观看 | 涩色网 | 色香欲综合网 | 草草影院1| 日本精品免费在线观看 | 午夜激情免费视频 | 91午夜视频在线观看 | 黄页网站在线看 | 成人在线小视频 | 欧美亚洲综合网 | 国产叼嘿视频 | 男人捅爽女人 | 一色屋免费视频 | 亚洲第一国产视频 | 一道本不卡视频 | 91丝袜国产在线播放 | 精品国产xxx | 丰满岳乱妇一区二区 | 欧美亚洲91 | 美女打屁股网站 | 久久久久久久久久久久久久av | 中文字幕精品一区二区精品 | 一级丰满大乳hd高清 | 亚欧综合在线 | 在线观看www视频 | 国产亚洲欧美精品久久久www | www成人免费 | 欧美成人免费在线观看视频 | 色窝在线| 综合伊人| 亚洲精品在线观 | 国产美女www爽爽爽视频 | 欧美精产国品一二三区 | 绯色av蜜臀vs少妇 | 久久久夜夜 | 超碰77 | 在线免费观看视频黄 | 国产美女被遭强高潮免费网站 | 亚洲久草| 午夜视频一区二区三区 | 97精品在线观看 | 成人免费观看cn | 海角社区id:1220.7126,10. | 国精品一区二区 | 日本人の夫妇交换 | 国精品无码一区二区三区 | 欧美亚洲精品一区二区 | 色亭亭 | 精品深夜av无码一区二区老年 | 亚洲综合免费观看高清完整版 | 色综合免费视频 | 久久久亚洲成人 | 国产精品国产精品国产专区 | 爱爱网视频 | 99久免费精品视频在线观78 | 国产图片区 | 少妇紧身牛仔裤裤啪啪 | www黄在线观看 | 婷色| 森林影视官网在线观看 | 日韩av免费在线观看 | 日韩大片在线 | 456亚洲视频 | 国产精品看片 | 天天爽影院| av大片免费| 欧洲美熟女乱又伦 | 久久青青视频 | 色四月| 秋霞在线观看秋 | 老司机黄色影院 | 亚洲午夜精品视频 | 奇米影视网 | 欧美婷婷精品激情 | 国产一区二区在线不卡 | 亚洲精品无码成人 | 国产人妖ts | 日韩av中文在线观看 | 色8久久| 免费成人在线电影 | 2024男人天堂 | 无码aⅴ精品一区二区三区 精品久久在线 | 老熟妇仑乱一区二区视频 | 韩国三色电费2024免费吗怎么看 | 成年人看的毛片 | 国产+高潮+白浆+无码 | 久久国产视频一区 | 国产资源网 | 久久99精品国产91久久来源 | 日日夜夜欧美 | 性歌舞团一区二区三区视频 | 欧美三级精品 | 午夜爱爱影院 | 五月婷婷啪啪 | 黑巨茎大战欧美白妞 | aaa毛片视频 | 美乳人妻一区二区三区 | 在线少妇|