说秒杀系统其实更多的高级一点的知识,不会太多的在业务上说明秒杀,那样确实太浪费时间,主要核心的点,如何处理高并发系统调优,压测。发现性能的瓶颈更好的调优。还会说说高阶的优化。主要分享给大家针对互联网分布式的高并发项目怎么去调优,快速定位,快速解决。主要说思路,明白了思路,如何去快速定位,快速解决。常用的调优方案。
秒杀系统介绍
其实大家都经常在网上购物的,秒杀应该都知道套路吧。
吸引大家来抢购,也不至于自己亏的太多。博眼球。
1.通过原有的下单增加三个变量完成,是否秒杀,开始时间,结束时间。
2.是否秒杀,是为了商品的展示。如果是秒杀商品的特殊判断。
3.进入页面之前先进入controller获取一个当前的后台时间传递到前台,方便读秒。
4.前端js判断时间到达后进行下单,下单时传递时间跟后端时间进行对比,防止被高手修改时间强行下单。
5.对于库存是通过下单的时间来判断的,必须按照秒杀开始后的时间来进行判断,每次下单库存都需要进行判断,防止超卖。 sql上边的判断:
update t_product set 库存=库存-1 and 商品id="ID号" and 库存>0;数据库防止绝对超卖。
6.忘了说了,必须判断登录,防止某个账号恶意刷接口。
我砖都搬完了,自己点点没问题了,还压测个毛线啊,压测都是测试人员的事情,我开发任务都堆成山了。
1.老铁啊,老铁,压测其实很有必要,jmeter分分钟就压测了接口。
2.压测可以让自己不被坑,压测还可以发现bug。
3.压测可以让你的代码更健壮。
4.压测可以找到业务和功能的bug。如果测试出来你的bug,可能罚钱,影响钱的问题。
Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
PS:熟悉秒杀的原理,秒杀的开发思路,最好会用jmeter可以自己做做简单的压测。