秒杀系统思路

       随着电商的发展,秒杀系统已经发展成为电商必不可少的组成部分,如小米手机的秒杀,12306的抢票,这些系统的共同特点都是:库存只有一份,瞬时流量非常大,所有人会在集中的时间读和写这些数据,多个人读一个数据;读写冲突,锁非常严重,这是秒杀业务难的地方。那我们怎么构建秒杀业务的架构呢?

        构建架构需要总体做到两点:

              1、请求尽量拦截在系统上游;2、使用缓存抗读压力

         对于客户端浏览器或者app层

                做限速,禁止用户重复提交,限制用户几秒内只允许访问一次

         站点控制层

                 必须进行登录有uid才能操作,对uid进行请求计数和去重,页面缓存,同一个uid,限制访问频度,做页面缓存,x秒内到达站点层的请求,均返回同一页面。同一个item的查询,例如车次,做页面缓存,x秒内到达站点层的请求,均返回同一页面。如此限流,既能保证用户有良好的用户体验(没有返回404)又能保证系统的健壮性

         服务层

                      按照业务做写请求队列控制流量,做数据缓存

         数据库层

                     浏览器层,站点层拦截了并做了页面缓存,服务层又做了写请求队列与数据缓存,每次透到数据库层的请求都是可控的。db基本就没什么压力了

扫描二维码关注公众号,回复: 1118815 查看本文章

          对于秒杀系统还需要注意和考虑垂直拆分的分流以及回仓操作

猜你喜欢

转载自blog.csdn.net/zysgdhf4253/article/details/80420188