實際上這不是一個很好回答的問題,如果只是要簡短回答,就是依照實際狀況去調整,但這樣實在太籠統了。 這篇文章提供了一個思考方向,讓您可以與自己的開發公司一起去檢測項目能支撐的人數。文章后半段還會提供您一些建議,讓您想要做特價促銷活動時,不會把主機給搞宕機了。
不只現實世界要擔心人潮,網站的人潮一樣可以讓您的業務癱瘓
關于項目的用戶乘載量
我們最常被客戶問到的問題,像是:網站能不能承載 1000-3000 人同時上線?
或是:你們家做的網站能乘載多少人? 之類的。
其實這個問題沒有固定解答,一般來說,我們會請您先思考以下幾個要點:
用戶在網站上活動的模式? 目標是獲得什么?
有沒有要搶購某個商品
有沒有要及時刷新? 大家會不會一直重新刷新?
假設要乘載 3000 人,這 3000 人會是靜態看內容? 還是會一直與網站或小程序互動?
是同一時間開放進到網站或小程序內? 還是在不同的時間斷斷續續進入網站或小程序?
這些問題能夠幫助您先思考好自己公司的業務性質是什么,以及如何與消費者互動,有了這些問題的解答后,自然知道網站的承載量大概多大。
以上面的問題來說,假如您的網站偏向新聞類型,或者單純的企業形象官網,由于都是靜態頁面,所以在小型主機上,每分鐘網站可能可以支撐100次頁面點擊。 假設用戶觀看每篇文章,大概會花 5 分鐘,那么每分鐘可以乘載的人數可以算成是 500 人。
再者,一臺小型主機,通常的承載量是每分鐘 100 次點擊,中型主機可能可以達到 300-500次點擊。 這樣會很少嗎? 其實每分鐘這幾百人之中,只要有1個人購買 1000 元的商品,一天可能就有百萬營業額了。 所以一般的電商不會去強調【高承載】,而是強調【轉換率】,自然沒必要使用太過強大的主機。
如果您可以了解以上的舉例,我們接下來就可以提供一些更詳細的說明:
基礎知識一:單位時間
網站的乘載量,要看「單位時間內點擊次數」,而不是「同時多少人上線」。
狀況A: 新聞網站,同時3000人在線上,但每個人看文章五分鐘,才點下一篇文章,效能壓力很低。
換算一分鐘600次點擊,約每秒十次點擊。
狀況B: 但游戲、電商、活動類網站,上線的人不停點擊、留言、購買,那可能 500-1000 人,網站就有點撐不住了。
狀況C: 若數秒鐘內大家搶著打開同一個頁面,不停點擊,則 100 人左右網站就會爆掉。
用現實世界來比喻,一間書店可以有500人在逛,但一條走廊或一個結賬臺塞超過30人就會炸掉。
基礎知識二:交易與搶購
案例一:
另一種狀況是搶購或交易。 假設我在程序內有一個地方存放商品,這個商品有一個數量是 1000。
現在有3000人要在同一秒鐘開放搶購這個商品,那么所有人要購買時都會進行以下檢查動作:
系統去檢查商品存在
系統去檢查商品庫存不為0
系統鎖住一個商品,讓這個商品等待結賬
如果結賬成功,正式扣掉商品庫存 -1
如果結賬失敗,把這個商品庫存是放給其他人搶購
從以上可以看到,3000人都在搶一個商品的數量計算。 而且有鎖住等待結賬的時間差,再加上物理上,這個數字是存在硬盤的某一個位置,所有人搶著在硬盤某一個位置讀取與寫入資料,超出物理極限。
結果:除了前幾十人運氣好結賬成功,后面所有人鎖住互卡,一個人都買不到。 主機買再貴都沒用,因為都在搶同一個物理位置,只有分布式系統與排隊機制才能解決。 但這兩者都是非常昂貴的,后面會再介紹到。
案例二:
一家老牌拉面店,大排長龍,店內有三十個座位。
如果我們一次開放三百人進店內,店里塞爆沒位子做,一個人都吃不到,老板也沒辦法煮面。
可行作法:所有人要么事前預約,要么現場拿號碼牌叫號排隊,或者號碼牌會直接規定用餐時間幾點到幾點,店內就是一次服務三十人。 最后一整天可能有一千人可以成功吃到拉面,剩下的明天請早。
這個案例,講的就是【排隊機制】。 無論如何,您都不該讓「所有」用戶在同一時間搶購。 應該要讓人潮陸續慢慢進場,先到者先買,這樣才能夠有效消化流量。
排隊機制
至于排隊機制要如何建立,假設是大型公司如 Amazon ,可以雇用工程師自己制作。 但一般小電商不可能負擔的起幾千萬或幾億的云架構成本,畢竟這個排隊系統本身就要扛大量的負載。
所以中小型電商大多是靠外掛排隊機制解決,電商網站先建立好搶購頁面,但不要發布網址。 將這個網址包在排隊機制提供的替代網址中,將這個替代網址發給網友們。 當搶購開始時,網友大批進入該網址,一開始人數不夠多時,替代網址會放行網友進入網站購買商品。 但一旦偵測到人潮超過您設定的最高值,就開始鎖住頁面,后續的人要等前面的人離開后,才能進入網站。 這樣就讓網站有了先來后到的機制,大家就可以依照順序購買商品了。
經過以上介紹,希望有幫助您理解網站承載量的計算方式,以及如何善用排隊機制來支撐大流量營銷活動。
本文地址:http://murenxiang.com.cn//article/2022/1130/31494.html