01 | 设计秒杀系统时应该注意的5个架构原则
该思维导图由 AI 生成,仅供参考
架构原则:“4 要 1 不要”
- 深入了解
- 翻译
- 解释
- 总结
秒杀系统设计的5个架构原则是:数据要尽量少、请求数要尽量少、路径要尽量短、依赖要尽量少、不要有单点。这些原则在设计超大流量并发读写、高性能和高可用的系统时至关重要。文章以淘宝早期秒杀系统架构的演进为例,介绍了不同请求体量下的最佳秒杀系统架构。随着请求量增加,系统架构需要不断优化,包括独立打造秒杀系统、部署独立机器集群、使用缓存系统提高读性能等。随着架构升级,系统需要动静分离、本地缓存、限流保护等优化,以提升性能。总体而言,文章强调了构建大并发、高性能、高可用系统需要从减少数据传输、请求次数、路径长度、系统依赖和消除单点出发,同时指出追求极致性能会导致系统定制开发增多、通用性减弱。文章内容丰富,为读者提供了设计秒杀系统的架构原则和实际案例,对构建高性能系统具有一定的指导意义。
《如何设计一个秒杀系统》
全部留言(101)
- 最新
- 精选
- 黄金的太阳希望老师可以分别从1W QPS,10W QPS ,100WQPS在架构升级前遇到的性能瓶颈做为讲解入口点,为什么这样设计之后就能解决问题的方式,为什么切分点是1万,10万和100万,瓶颈的分析方式等等,感觉效果更好,否则看到一堆架构,但并不清楚为什么要这样做还是很难平移到自己的系统设计中,一点拙见,希望老师能够解惑
作者回复: 架构升级的逻辑要具体问题具体分析的 例如秒杀的场景来说,不同QPS量级下瓶颈也会不一样,10w级别可能瓶颈就在数据读取上,通过增加缓存一般就能解决,如果要到100w那么,可能服务端的网络可能都是瓶颈,所以要把大部分的静态数据放到cdn上甚至缓存在浏览器里 所以要做架构升级,还是主要要分析在预估的QPS下,整个系统的瓶颈会在什么地方,要针对这起瓶颈来重新设计架构方案
2018-10-013280 - Mr.钧👻高并发系统的几大方向 1.请求数据尽量少,从而减少cpu消耗 2.访问路径尽量短,减少节点消耗 3.强依赖尽量少,减少加载时间 4.不要有单点,要有备份 5.减少额外请求,减少加载时间
作者回复: 👍
2018-10-02285 - 小喵喵1 .本地cache用什么实现好呢? 2. 通过什么方式往本地cache 写数据呢? 3. 秒杀系统的及时性非常高,把库存写进cache ,怎么及时更新呢?
作者回复: 1.本地cache一般就是用内存实现,用java集合类型就行 2.用订阅的方式,在初始化时加载到内存 3.有两种方法,一是定时更新取3秒,二是,主动更新,数据库字段更新后发消息更新缓存,这个需要用到一个组件阿里叫metaq就是就是数据库字段更新会产生一条消息。另外cache里库存不需要100%和数据库一致,这个在后面的文章也有介绍
2018-10-01348 - 酱了个油库存不会放在localcache,localcache只放静态数据。 库存是放在独立的缓存系统里,如redis,库存是采用主动失效的方式来失效缓存
作者回复: 👍
2018-10-0928 - Edward数据缓存在机器内存中的话,集群内如何实现多台机器数据一致性?
作者回复: 在内存的数据是静态数据,不会更新,没有一致性问题
2018-10-01426 - 王永旺单点的概念是啥意思,不太明白
作者回复: 单点就是没有备份,挂了系统没法正常服务了
2018-10-01417 - MeazZa请问一下减库存的结果分别是如何更新到公共缓存和本地缓存的呢?
作者回复: 缓存的更新一般都是没命中时再填充更新 没命中的原因一种是主动失效,一种是定时失效 公用缓存主动失效较多,本地缓存,定时失效更常用
2018-10-0116 - 王虹凯能不能给一些你认为的关键知识点在文章最后加一些对这些点的外链。这样可以更详细,当然更具系统性。 极客时间也可以考虑这样的一个功能,整个当前专栏共用这些链接。 当然,作者不加这些也没问题,只是觉得那样是不是更权威些。不过要求作者太多了!
作者回复: 你想了解那块内容,我可以单独发给你😊
2018-10-0214 - 云飞老师你好,刚才说要设计时候尽量做到4要1不要,1不要就是不要用单点,也就是因为没有数据备份,想问这个单点和单点登录系统的单点有什么关系吗?希望老师有时间可以解答一下。
作者回复: 这里的单点有两层含义 一是本身的系统是单点系统,比如你说的登录系统,所以其他系统需要验证登录状态时都需要调用他,那他就是一个单点,怎么解决?解决的办法就是尽量让这个系统简单,减少更改保持稳定。 另外一种是状态单点或者叫数据单点,也就是状态一旦丢失比较难恢复,这个就比较麻烦,比如保存登录状态的session保存在一台机器内存中,一旦这台机器挂掉,状态丢失就比较难恢复,这个单点就比较严重
2018-11-28212 - 1024阅读5分钟,留言中回复看了半个多小时;感觉从读者讨论中收益更大,许神加油!
作者回复: 😊
2018-11-2511