如何设计一个秒杀系统,是后台求职的标准问题,可以考出求职者方方面面的知识面,以下为自己对设计秒杀系统的总结和心得。尽可量拓展面试中可能遇到的问题和实际设计中一些关键的问题。
一,简介
秒杀系统就是电商系统的一种形式,通过设计秒杀模块来应对实际电商平台中最考验系统架构的部分。
秒杀系统特点:业务简单(卖家查询,买家下订单减库存),商品定时上架,时间短,瞬时并发量高。
拼多多App中这种设计很常见,动不动就会蹦出来一个秒杀模块,这就是我们目标需要实现的系统。
二,设计思路
核心思路是通过缓存,异步,限流来保证系统的高并发和高可用。
设计框架采用流行的微服务框架dubbo(上一篇有介绍),主要把业务分开实现系统间低耦合。
流程:(1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货。
设计思路:
将请求拦截在系统上游,降低下游压力
充分利用缓存:利用缓存可极大提高系统读写速度
消息队列:消息队列可以削峰,将拦截大量并发请求,这也是一个异步处理过程,后台业务根据自己的处理能力,从消息队列中主动拉取请求信息进行业务处理
前端方