高并發訪問服務器時前臺頁面優化方法

  • 時間:2018-10-14 23:02 作者:南京菜菜工作室 來源:南京菜菜工作室 閱讀:157
  • 掃一掃,手機訪問
摘要:前段時間公司上線了一個微信搶紅包的項目,搞了6天活動,公眾號粉絲從二十多萬一下子漲到四十萬左右,看來糖衣炮彈的吸引力才是最大的。但是對于我們技術開發而言,這么多的客戶,而且還存在大量并發的訪問,服務器的壓力可想而知,為了配合減少服務器壓力,作為前臺開發的我,在和同事探討后,做了如下幾條前臺優化措施,

前段時間公司上線了一個微信搶紅包的項目,搞了6天活動,公眾號粉絲從二十多萬一下子漲到四十萬左右,看來糖衣炮彈的吸引力才是最大的。但是對于我們技術開發而言,這么多的客戶,而且還存在大量并發的訪問,服務器的壓力可想而知,為了配合減少服務器壓力,作為前臺開發的我,在和同事探討后,做了如下幾條前臺優化措施,配合服務端有效減輕了服務端的壓力。

1.減少訪問API或者者不訪問

這個項目主要開發了3個頁面,活動規則頁面、 搶紅包頁面、中獎名單頁面。最開始的方案是活動規則頁面的活動規則是通過請求api從服務端獲取,這是通常的做法,好處是開發完成后不再需要技術人員修改代碼,經營人員直接在后端修改富文本編輯器即可以升級頁面,很靈活,適合長期存在、活動有變更的項目。但是對于搶紅包這個項目,6天活動時間結束后就可下線,為了保證穩妥性,防止大量客戶并發訪問導致服務器癱瘓,后來把從服務端獲取活動規則的借款去掉了,直接在頁面中寫死數據。

在中獎名單頁面的開發中,也是一樣的道理,但是這個就略微復雜少量了,因為搶紅包頁面采用的是靜默受權的方式,服務端數據庫中只存了客戶的openid,而中獎名單頁面需要顯示客戶微信頭像、微信昵稱,這樣才具備公信力,否則只擺出一個openid,客戶會懷疑活動的真實性。

高并發訪問服務器時前臺頁面優化方法

方案已經是確定的,中獎名單的數據還是采用寫死的數據,不訪問API,那么對于我而言,開發方式就有點變化了,我需要從服務端獲取到3月31日的中獎名單前100名,而后遍歷這一百天數據的openid,使用access_token 和openid獲取客戶的頭像和昵稱后,以數組的形式存入到一個數組中。頁面加載的時候其實是每次取這個數組中的10條數據。具體實現方法我寫了了demo,有時間再補充。

2.h5靜態文件資源與API請求部署到不同的服務器

做最壞的打算,為了防止服務器癱瘓后,客戶打開頁面顯示404或者者503,我把前臺靜態文件中的js、css、圖片等資源都放到七牛服務器上,為了防止跨域,html文件還是和API放在同一臺服務器上。這樣,即便我們自己的服務器癱瘓了,客戶仍然可以正常打開頁面。

3.對于高訪問量接口使用分時請求

高并發訪問服務器時前臺頁面優化方法

搶紅包的頁面如上圖所示。

在整個項目中,搶紅包的API是訪問量最大的接口之一,為了減輕服務器壓力,我做了一個分時解決,在客戶點擊“繼續搶”按鈕時,取1到15秒的隨機數,而后發起api請求,這樣就把所有的請求平均分到15秒時間內,肯定程度上可以減小并發訪問量。

4.在高并發請求API接口前增加訪問限制接口,只允許一部分客戶通過

這個主要是服務端的邏輯,作為前臺就是配合增加接口,假如超過超時時間就重新初始化。

5.當天搶到紅包的客戶不再發起搶紅包API請求,屏蔽時間1小時

因為活動時間為6天,當天的活動,假如客戶已經搶到紅包,就不再請求api,假如還沒有搶到紅包,可以繼續請求。具體是這樣實現的:假如客戶已經搶到紅包,將中獎標志存入cookie,有效期1小時。這樣中獎當天就不會再請求api,但是第二天的活動照樣可以請求api,實現了減小api請求的目的。

  • 全部評論(0)
最新發布的資訊信息
【系統環境|Linux】零基礎如何學好大數據?必備需要學習知識(2019-06-18 11:54)
【系統環境|】Hadoop環境中管理大數據存儲八大技巧(2019-06-15 11:01)
【系統環境|服務器應用】現在國內IT行業是不是程序員過多了?(2019-06-11 06:34)
【系統環境|服務器應用】新貴 Flutter(2) 自己設置 Widget(2019-06-11 06:34)
【系統環境|服務器應用】Android完整知識體系路線(菜鳥-資深-大牛必進之路)(2019-06-11 06:34)
【系統環境|服務器應用】Java程序員小伙經歷三個月備戰,終獲阿里offer(2019-06-11 06:34)
【系統環境|服務器應用】每日一問:談談對 MeasureSpec 的了解(2019-06-11 06:34)
【系統環境|服務器應用】【科普】晶體管-1(2019-06-11 06:34)
【系統環境|服務器應用】一個很多人都會答錯的java基礎題(2019-06-11 06:33)
【系統環境|服務器應用】深入了解枚舉類型(2019-06-11 06:33)
手機二維碼手機訪問領取大禮包
返回頂部
双色球号码300期遗传走势图