SQL導致購物車服務(wù)無法使用怎么辦

這篇文章給大家分享的是有關(guān)SQL導致購物車服務(wù)無法使用怎么辦的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、萬柏林網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)、商城系統(tǒng)網(wǎng)站開發(fā)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為萬柏林等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

概述

之前處理過一個購物車故障,覺得還挺經(jīng)典的,在這里跟大家分享一下。這個故障直接導致前端添加購物車、獲取用戶購物車列表等操作都失敗了。購物車是入口,一旦出現(xiàn)問題,影響極其嚴重。

臨時處理

購物車服務(wù)所有接口,是有打印響應(yīng)時間的,發(fā)現(xiàn)比平時慢了很多。由于情況已是十萬火急了,我只能先重啟購物車,緩沖一下,然后利用這段緩沖時間,趕緊定位問題。

問題定位

之前對購物車應(yīng)用基于Spring Cloud微服務(wù)化了,已經(jīng)穩(wěn)定運行了幾個月了,且當時上線前也經(jīng)過壓測,接口性能是沒問題的。怎么突然之間就有問題了呢?根據(jù)以往的經(jīng)驗,大部分故障都是SQL語句引起的,因此首先導出數(shù)據(jù)庫的所有慢SQL(騰訊云有導出慢SQL的工具)語句,發(fā)現(xiàn)大部分慢查詢都是來自庫存查詢的SQL語句,有些甚至是10秒鐘才執(zhí)行完。

后來仔細一看,庫存慢查詢語句,要查詢庫存的商品比平時多很多。商品個數(shù)少的話,這條語句還是非??斓模坏┒嗔司烷_始慢了。

解決方案

由于庫存計算體系的歷史原因,這條SQL是很難優(yōu)化的。情況又是十萬火急的,大老板一直在問咋回事。因此臨時改代碼,將商品庫存放到redis緩存起來。購物車服務(wù)的話,是允許庫存數(shù)據(jù)不實時的,因為后面的結(jié)算和支付會實時計算庫存,庫存不足的時候,會提示用戶的。

注意:

  • 由于購物車是入口,流量很大,而從購物車到結(jié)算頁再到支付,由于有一個操作步驟,因此結(jié)算頁和支付頁的流量是沒有購物車那么大的;

  • 部分用戶購物車上的商品數(shù)據(jù)是非常多的,但是未必都會買,用戶也可以勾選要買的商品,然后下單;

  • 部分用戶沒有清理購物車失效商品的習慣,導致購物車上的商品非常多。

終極解決方案

將庫存服務(wù)獨立出去,將商品庫存數(shù)據(jù)放置到緩存,并引入實時刷新緩存中庫存數(shù)據(jù)的機制,讓緩存中的數(shù)據(jù)盡量保證新鮮。這樣的話,查詢庫存的時候,大部分都可以從緩存中獲取,不會穿透到數(shù)據(jù)庫上。

補充

我們對接口進行壓測的時候,部分場景下,要考慮入?yún)⒌膫€數(shù),不能簡單的用幾個數(shù)據(jù)壓測,覺得性能OK就不管了。

感謝各位的閱讀!關(guān)于“SQL導致購物車服務(wù)無法使用怎么辦”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

新聞標題:SQL導致購物車服務(wù)無法使用怎么辦
網(wǎng)站網(wǎng)址:http://bm7419.com/article2/iihpic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)App開發(fā)、網(wǎng)站設(shè)計公司網(wǎng)站收錄、用戶體驗品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)