点击空白处退出提示
作品详情
由于秒杀时,流量巨大,而有效流量很小,需要做到尽量把请求控制在前端,通过层层过滤,达到放行到后台的请求数与秒杀商品库存数一致。
常见的系统架构(前端、nginx、后台服务及数据层)及流量层层筛选,这与我们实际生活中地铁高峰期的限流措施是不谋而合的,都是逐层限流,尽量把请求流(人流)拦截在前端,减少后一层的压力,如下图所示:
缓存处理
缓存技术是实现高性能架构的基石,在秒杀系统中,需要把需要秒杀的商品信息、商品库存及秒杀订单都缓存起来,在用户查询时,不需要再去数据库查询,提升系统性能。
预扣库存
秒杀系统控制库存预扣预存,即:扣减缓存中的商品库存,扣减失败,立即返回,扣减成功,通过发送消息到消息服务器实现异步下单。
预扣库存流程:先判断库存是否足够,足够再扣减库存,这两部操作需要原子化,lua脚本具有原子性,可以通过redis + lua脚本来实现。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论