Inventory system design
库存服务设计
需求收集
方案评审
浏览器优化, 限流器使用,监控告警提前预报
设计难点在于库存更新和超时处理
库存更新, mysql+redis: 先更新,再删除缓存 超时处理,mysql事务回滚;如果是redis,删除缓存
针对update加锁过多,请求排队处理
如果还不能支撑,分库存,一个库存分成不同的key存储
延展设计
秒杀服务
异步处理,成功处理后检测结果发给用户
如何设计一个秒杀系统
- 设计秒杀系统时应该注意的5个架构原则
- 秒杀系统整体的架构设计思路
- “4要1不要"原则
- 不同场景下的不同架构案例
- 如何才能做好动静分离?有哪些方案可选?
- 什么是静态数据和动态数据
- 如何做动静分离的改造
- 动静分离的几种架构方案
- 二八原则:有针对性地处理好系统的热点数据
- 什么是热点,热点操作和热点数据
- 实现一个动态热点发现系统
- 思路:优化、限制、隔离
- 流量削峰这事应该怎么做
- 什么是流量削峰
- 队列缓冲、秒杀答题、分层过滤
- 具体的实现细节
- 影响性能的因素有哪些?又该如何提高系统的性能?
- 影响性能的因素
- 如何发现瓶颈
- 如何优化系统
- 秒杀系统"减库存"设计的核心逻辑
- 常见的几种减库存方案
- 减库存的最优实现方式
- 其中的坑以及关键优化点
- 准备PlanB(高可用):如何设计兜底方案?
- 如何才能保证系统的高可用
- 降级、限流、拒绝服务的核心逻辑
- 具体的实现细节
- 设计秒杀系统时应该注意的5个架构原则