美文网首页
01.设计秒杀系统时应该注意的5个架构原则

01.设计秒杀系统时应该注意的5个架构原则

作者: 八颗小牙坏脾气 | 来源:发表于2018-11-20 23:16 被阅读0次

    简介

    秒杀:同一时刻有大量的请求争抢购买同一个商品并完成交易的过程。
    秒杀系统本质上就是一个满足大并发,高性能和高可用的分布式系统。

    原则

    架构原则:4要1不要

    • 数据要尽量少
      • 用户请求的数据能少就少(包括上行和下行数据,数据传输需要时间,网络阐述涉及到压缩,字符编码,消耗CPU)
      • 系统依赖的数据能少就少(后台服务,数据库交互。序列化反序列化消耗CPU,数据库本身可能瓶颈)
    • 请求数要尽量少(CSS/JS/imgs 额外的请求需要三次握手,不同的域名 dns解析,解决:http://www.baidu.com??a.jpg,b.css,c.js)
    • 路径要尽量短(发起请求到返回数据全链路,99%99%99%99%99%=95%,解决:RPC→JVM内部消化)
    • 依赖要尽量少(系统分依赖等级,不被非核心模块拖垮,如优惠券服务)
    • 不要有单点(没有备份,风险不可控,解决:服务无状态,MCC配置)
      总结如下:
    1.请求数据尽量少,从而减少cpu消耗
    2.访问路径尽量短,减少节点消耗
    3.强依赖尽量少,减少加载时间
    4.不要有单点,要有备份
    5.减少额外请求,减少加载时间
    

    实战不同场景下的不同架构案例

    1.商品购买页增加定时按钮,秒杀开始按钮可见,库存卖完,活动结束。

    2.秒杀系统单独成立未一个系统,便于针对性优化。如去掉店铺装修等非核心功能;独立部署集群机器,不影响正常的商品售卖;热点数据(库存)单独放到一个缓存系统,提高读性能;增加秒杀答题,减少机器抢单。

    3.页面彻底动静分离,抢宝按钮,刷新少量数据;服务端缓存商品数据,减少第三方系统依赖;增加系统限流,防止最坏情况发生。

    缺点,性能越优化,越缺少通用性

    相关文章

      网友评论

          本文标题:01.设计秒杀系统时应该注意的5个架构原则

          本文链接:https://www.haomeiwen.com/subject/mhpfqqtx.html