什么是秒杀

短时间(瞬时),大量请求,买一个(数量少)商品

解决:高并发(读,写)

秒杀系统目标

稳:高可用,系统稳定的提供服务

准:超卖,数据一致性问题

快:高性能(优化的点)

防:防止无效请求到服务

架构原则

  • 减少用户和服务端的交互

    数据要少:请求参数和响应参数要少,降低对网络的占用,降低对cpu的消耗(参数的压缩和解压),对IO数据库。非必要的信息不要来回传

    请求数要少:合并请求

    路径要短:

    依赖要少:花里胡哨的减少,优先级高的展示,低的去掉

    保证高可用:负载均衡,水平扩展(服务无状态)

动静数据分离

数据区分:url,用户,浏览的时间,地域,cookie(缓存信息) -> 静态数据。 cdn,负载均衡

商品详情 url:详情(json)

放到离用户最近的地方。 cdn,(浏览器缓存,服务器缓存 guava cache 或 map,第三方缓存redis,文件缓存等)

根据不同的用户类型做缓存

CSI (Client side include) iframe ajax 局部刷新

热点数据

本来卖衣服秒杀,系统都为衣服服务,结果 水果商家推广,成了秒杀商品

识别热点数据

监控,追踪 用户访问,添加购物车,下单,统计分析(经验,BI)

发现热点数据:分析日志,添加队列,系统订阅

处理热点数据

优化:LRU算法

Scroll to Top