秒杀系统的设计思路

秒杀系统的设计思路

特点:库存只有一份,所有人会在集中的时间读和写这些数据。但是最终成功的人却很少

思路:将请求尽量拦截在系统上游

秒杀系统细节

  • 浏览器层请求拦截 ,JS层面,限制用户在x秒之内只能提交一次请求。
  • 站点层(webServer)请求拦截与页面缓存. 同一个uid,限制访问频度,做页面缓存,x秒内到达站点层的请求,均返回同一页面。
  • 服务层(SOA)请求拦截与数据缓存
    • 对于写请求,做请求队列,每次只透过有限的写请求去数据层,如果均成功再放下一批,如果库存不够则队列里的写请求全部返回“已售完” .
    • 对于读请求cache来抗,不管是memcached还是redis,单机抗个每秒10w应该都是没什么问题。
  • 数据层处理真正的下单请求

Leave a comment

您的电子邮箱地址不会被公开。 必填项已用 * 标注