秒杀系统设计
2016-12-23 15:42:49 0 举报
AI智能生成
秒杀系统是一种电子商务系统中的一种,它能够在短时间内处理大量请求,保证商品在有限时间内的限量销售。为了实现这一目标,秒杀系统需要采用分布式架构、缓存技术、消息队列等技术手段,以保证系统的高可用性和高性能。同时,秒杀系统还需要对用户进行身份验证和库存检查,以防止恶意攻击和超卖现象的发生。总之,秒杀系统的设计需要考虑多种因素,包括技术架构、安全性、性能等方面,以确保系统能够满足用户的需求并保证系统的稳定性和可靠性。
作者其他创作
大纲/内容
挑战
对现有网站业务造成冲击
高并发下,对系统,数据库的负载大
突然增加的网络带宽
下单地址动态化,避免再秒杀前直接下单
如何控制秒杀商品页面购买按钮的点亮
如何只允许第一个提交的订单被发送到订单子系统
如何进行下单前置检查
秒杀一般是定时上架
减库存的操作
超卖的情况
秒杀器的应对
热点隔离
业务隔离
将秒杀做成营销活动。卖家参加活动需要报名。
技术可以提前做好预热
系统隔离
分开部署
申请不同的域名
数据隔离
启用单独的cache集群和mysql数据库
动静分离
整个页面cache在用户浏览器
强制刷页面,请求在cdn
通过答题实现削峰
在服务端通过锁或者队列控制瞬间请求
数据分层校验
漏斗式设计
将大量不需要校验的数据放在离用户最近的地方
在前端读系统中做一些基本校验
是否具有秒杀资格
商品状态是否正确
用户答题是否正确
秒杀是否结束
在写系统中再次校验
是否是非法请求
营销等价物是否充足(淘金币)
是否还有库存
数据库层面
库存不能为负数
实时热点发现
构建一个可以从中间件上收集热点商品的系统
建立热点上报&下发规范;将上游发现的热点传到下游,提前做好保护
关键技术&优化点
同一数据大并发更新
应用层做排队
数据库层做排队
使用local cache
过载保护
防作弊
同一个账号,一次性发多个请求
通过标记位过滤多余请求
排队处理
多个账号,同一IP一次性发多个请求
验证码,答题
封IP
多个账号,不同IP一次性发多个请求
提高参与的门槛
通过对行为挖掘,提前清除这部分客户
秒杀架构设计
前端层设计
秒杀页面的展示
使用CDN
倒计时
客户端与服务端定时同步时间
浏览器层请求拦截
限制X秒内只能提交一次
站点层设计
按照uid限制访问频率,做缓存
按照item做缓存
服务层设计
对于写请求做排队
对于读请求做cache
数据层设计
高可用性
读高可用
冗余多个读库
不同的读库建立的索引不同
增加索引
写高可用
双主互备
ID自增冲突
事务
shadow-master, 通过VIP漂移
高扩展
将shadow-master提升为主
删除主节点上多余的数据
0 条评论
下一页