前端的批量接口如何快速響應(yīng)

本篇內(nèi)容主要講解“前端的批量接口如何快速響應(yīng)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“前端的批量接口如何快速響應(yīng)”吧!

為乳山等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及乳山網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、成都網(wǎng)站建設(shè)、乳山網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

昨天我們討論了服務(wù)間是否應(yīng)該提供批量接口的問題,很多同學留言討論,非常好,一起討論一起進步。

其中,留言最多的一種觀點是說可以提供,但是要限制條數(shù),比如每次最多傳1000條數(shù)據(jù)過來。

說句實話,我們的項目很多也是這么做的。

不過我還是堅持我的觀點,最好就不要提供批量接口。

因為隨著數(shù)據(jù)量的不斷增大,勢必導致存儲架構(gòu)升級。

我們以商品查詢?yōu)槔瑪?shù)據(jù)量變大,肯定是要上redis的吧,以前批量接口可能直接一個數(shù)據(jù)庫in就解決了,現(xiàn)在你是先走緩存還是不走呢?走的話要改代碼,不走的話性能肯定不高。數(shù)據(jù)量再繼續(xù)增大,分庫分表了,批量接口怎么處理?上Elasticsearch了,怎么處理?

這里,我們舉例是說的批量查詢,如果換成批量操作呢?每次存儲架構(gòu)升級可能都要改這塊的代碼,而且還有另外一個操蛋的問題,比如你們規(guī)定服務(wù)間調(diào)用超時最大是1秒鐘,超過1秒就有熔斷邏輯,那么,你要不要單獨為這個批量接口配置超時?

所以,批量接口極其容易形成瓶頸,需要花費巨大的代價去維護這個代碼,還是不提供比較好。

當然,如果你們的數(shù)據(jù)量在可以預見的未來都不會增長到那么大,提供一個批量接口也不是不可以,視情況自行決定哈。(數(shù)據(jù)量都沒有,還不趕緊跑路?)

好了,關(guān)于昨天的問題先嘮這么多,今天,我們看另外一個問題:對前端提供的批量接口,后端如何快速響應(yīng)?有沒有通用的解決方案呢?

首先,我們分析一下這個場景。

這里說的批量接口,肯定不是查詢哈,而是批量操作類的接口,比如批量導入,批量發(fā)貨,批量刪除,批量流轉(zhuǎn),批量修改某種狀態(tài),等等,有很多,不過做2C系統(tǒng)的可能比較少見,一般2B的系統(tǒng)會有非常多這種批量的接口,往往他們也是系統(tǒng)中的頑固,需要投入很多精力不斷打磨不斷優(yōu)化。

好了,場景我們清楚了,那么,怎么解決這類難題呢?

一般地,我們提供一個批量接口,前端傳一堆id過來,或者數(shù)據(jù)過來,后端慢慢處理,處理完了再給前端返回,因為是2B的系統(tǒng),用戶也愿意等待。

但是,這里其實有很多問題,最典型的就是超時問題,超時這個問題說簡單也簡單,說復雜也復雜,以我們的系統(tǒng)為例,我們部署到華為云上面,可能會有這么幾個超時的地方:

  • 1、華為云的防火墻有超時;

  • 2、華為云ELB有超時;

  • 3、前端nginx有超時;

  • 4、前端代碼里寫死了超時;

  • 5、后端網(wǎng)關(guān)有超時;

  • 6、后端服務(wù)有超時;

  • 7、遠程調(diào)用有超時;

所以,你看,一個超時問題能把你折磨死,而且,這種問題非常難排查,當然,你躺完一次這個坑之后后面可能會好很多。(所以,我為什么知道這么多地方可能有問題呢?)

超時只是一個典型的問題,并不是全部,再說一個情形,以批量發(fā)貨為例,晚上,很多商家都喜歡批量發(fā)貨,比如一次1000條,這么多商家的請求呢,一不小心就會出現(xiàn)很多打到同一臺機器上面去了,然后大家都在搞批量,都要申請大量的內(nèi)存,都在搞內(nèi)存,內(nèi)存扛不住呀,然后就OOM了,這是典型的請求傾斜的問題,所以,怎么設(shè)置你的負載均衡策略呢?目前,并沒有很好的解決方案。

基于以上這些可能會出現(xiàn)的問題,我一直在思考,能不能提供一種通用解決方案呢?

其實是有的,但是,要改原型。

比如,批量發(fā)貨,本來狀態(tài)只有未發(fā)貨、已發(fā)貨、發(fā)貨失敗,能不能加一個“發(fā)貨中”呢?

別小看這個發(fā)貨中的威力,真的很強大。

后端接收到批量發(fā)貨這個請求,先檢查數(shù)據(jù)的正確性,然后把數(shù)據(jù)庫這些單據(jù)的狀態(tài)改成發(fā)貨中,接著把這些數(shù)據(jù)一個一個的丟到消息隊列中,就可以返回了,前端查詢的時候就顯示發(fā)貨中,旁邊放一個刷新按鈕。此時,用戶完全去干別的事,比如去建商品,等會回來再看有沒有發(fā)貨完成或者發(fā)貨失敗的。

最后,有一組消費者不斷的從消息隊列中消費數(shù)據(jù),調(diào)用物流服務(wù)發(fā)貨等等。

經(jīng)過這么一折騰,本來前端要hang死幾分鐘的請求幾秒鐘就返回了,用戶體驗上去了,也不用去搞超時、請求傾斜等問題了,解放了生產(chǎn)力,可以多劃水了。

而且,這還是一個可以無限橫向擴展的架構(gòu),隨著用戶量的不斷增大,理論上來說,只要堆機器就可以了。

到此,相信大家對“前端的批量接口如何快速響應(yīng)”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

當前文章:前端的批量接口如何快速響應(yīng)
分享路徑:http://m.kartarina.com/article20/gspgco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站關(guān)鍵詞優(yōu)化網(wǎng)站制作服務(wù)器托管品牌網(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è)網(wǎng)站維護公司
主站蜘蛛池模板: 亚洲a无码综合a国产av中文| 亚洲性无码AV中文字幕| 国产成人亚洲综合无码| 午夜无码一区二区三区在线观看| 亚洲AV无码成人精品区大在线| 日韩精品人妻系列无码专区| 无码av无码天堂资源网| 无码国产精品一区二区免费式芒果 | 台湾无码AV一区二区三区| 亚洲国产精品无码专区在线观看 | 无码h黄肉3d动漫在线观看| 国产AV无码专区亚洲Av| 亚洲国产精品无码久久久秋霞1 | 蜜臀亚洲AV无码精品国产午夜.| 亚洲国产精品无码专区在线观看| 无码av大香线蕉伊人久久| 日韩av无码一区二区三区 | 亚洲国产精品无码久久一线| 国模无码视频一区二区三区| 中文字幕av无码一二三区电影| 一本一道av中文字幕无码| 国产精品成人无码久久久久久| 国产莉萝无码AV在线播放| 日韩精品无码久久久久久| 国产AV无码专区亚洲A∨毛片| 精品久久久久久无码人妻热 | 无码av高潮喷水无码专区线| 久久久久亚洲AV无码专区首| 亚洲AV无码专区国产乱码电影 | 久久老子午夜精品无码怎么打| 人妻无码aⅴ不卡中文字幕| 噜噜综合亚洲AV中文无码| 西西大胆无码视频免费| 亚洲久热无码av中文字幕| 无码中文在线二区免费| 久久精品无码一区二区三区不卡| 无码少妇一区二区浪潮免费| 无码一区18禁3D| 无码人妻精品一区二| 亚洲AV无码乱码精品国产| 国产精品无码专区在线观看|