Inventory system design

库存服务设计

  • 需求收集

  • 方案评审

    浏览器优化, 限流器使用,监控告警提前预报

    设计难点在于库存更新和超时处理

    库存更新, mysql+redis: 先更新,再删除缓存 超时处理,mysql事务回滚;如果是redis,删除缓存

    针对update加锁过多,请求排队处理

    如果还不能支撑,分库存,一个库存分成不同的key存储

  • 延展设计

    秒杀服务

    异步处理,成功处理后检测结果发给用户

  • 如何设计一个秒杀系统

    • 设计秒杀系统时应该注意的5个架构原则
      • 秒杀系统整体的架构设计思路
      • “4要1不要"原则
      • 不同场景下的不同架构案例
    • 如何才能做好动静分离?有哪些方案可选?
      • 什么是静态数据和动态数据
      • 如何做动静分离的改造
      • 动静分离的几种架构方案
    • 二八原则:有针对性地处理好系统的热点数据
      • 什么是热点,热点操作和热点数据
      • 实现一个动态热点发现系统
      • 思路:优化、限制、隔离
    • 流量削峰这事应该怎么做
      • 什么是流量削峰
      • 队列缓冲、秒杀答题、分层过滤
      • 具体的实现细节
    • 影响性能的因素有哪些?又该如何提高系统的性能?
      • 影响性能的因素
      • 如何发现瓶颈
      • 如何优化系统
    • 秒杀系统"减库存"设计的核心逻辑
      • 常见的几种减库存方案
      • 减库存的最优实现方式
      • 其中的坑以及关键优化点
    • 准备PlanB(高可用):如何设计兜底方案?
      • 如何才能保证系统的高可用
      • 降级、限流、拒绝服务的核心逻辑
      • 具体的实现细节
  • 秒杀系统设计: https://www.cnblogs.com/fmys/p/10915818.html

Resource