实际上这不是一个很好回答的问题,如果只是要简短回答,就是依照实际状况去调整,但这样实在太笼统了。 这篇文章提供了一个思考方向,让您可以与自己的开发公司一起去检测项目能支撑的人数。文章后半段还会提供您一些建议,让您想要做特价促销活动时,不会把主机给搞宕机了。
不只现实世界要担心人潮,网站的人潮一样可以让您的业务瘫痪
关于项目的用户乘载量
我们最常被客户问到的问题,像是:网站能不能承载 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 ,可以雇用工程师自己制作。 但一般小电商不可能负担的起几千万或几亿的云架构成本,毕竟这个排队系统本身就要扛大量的负载。
所以中小型电商大多是靠外挂排队机制解决,电商网站先建立好抢购页面,但不要发布网址。 将这个网址包在排队机制提供的替代网址中,将这个替代网址发给网友们。 当抢购开始时,网友大批进入该网址,一开始人数不够多时,替代网址会放行网友进入网站购买商品。 但一旦侦测到人潮超过您设定的最高值,就开始锁住页面,后续的人要等前面的人离开后,才能进入网站。 这样就让网站有了先来后到的机制,大家就可以依照顺序购买商品了。
经过以上介绍,希望有帮助您理解网站承载量的计算方式,以及如何善用排队机制来支撑大流量营销活动。
本文地址://hailanjianghuncun.com//article/2022/1130/31494.html