广州正佳最近在搞一个活动,就是发福利,但是因为技术原因,导致了系统出现了很多问题,引起了很多吐槽,在此笔者仅从技术的角度分析一波。
起因:发券18抢100,这个羊毛(*^▽^*),你懂的引起了轩然大波,疯抢,这块就涉及到高并发了
经过:大伙集体薅羊毛,导致服务器504,502,库存超卖,各种报错,并且其他服务不可用
结果:投诉,影响正佳企业形象(偷偷说一哈,查了一下只有3个程序员,哈哈,不能怪)
处理方案:
方案1:前端控制,到点了才把待抢列表展示出来,可减缓部分压力,但是指标不治本【开发发现竟然连这个都没有做直接裸露处理】
方案2:接口没有做数据库超卖限制或者没有使用缓存限制超卖导致库存各种问题【后面也看到应该使用了redis缓存控制整体库存数;使用异步推送券模式,业务解耦到我的订单让用户自己去付款才算完成购买】
方案3:nginx使用了接口代理,把单独抢券的那个接口临时代理到一台新的临时服务器和应该也增加了临时只读数据库,分解压力,其他服务不受影响。
最后,看到服务还算稳定,最主要的是我白嫖到了,哈哈