秒杀架构-00秒杀架构设计关键点
01 | 秒杀问题:并发读写
1、秒杀中并发读
1)核心优化理念是尽量减少用户到服务端来“读”数据,或者让他们读更少的数据。
2、秒杀中并发写
1)处理原则同并发读,需要在数据库层面独立出一个库,做特殊处理。
3、超大并发读写、高性能、高可用系统的要求
1)在整个用户请求路径上从浏览器到服务端需要遵循 “4要1不要” 原则。
2)“4要1不要” 原则,就是要保证用户请求的数据尽量少、请求数尽量少、路径尽量短、依赖尽量少,并且不要有单点。
02 | 秒杀的架构要求
1、秒杀的整体架构可以概括为“稳、准、快”几个关键字。
1)从技术角度上看“稳、准、快”,就对应了我们架构上的高可用、一致性和高性能的要求。
2、高性能
1)秒杀涉及大量的并发读写和并发写。
2)优化方案:设计数据的动静分离方案、热点的发现与隔离、请求的削峰与分层过滤、服务端的极致优化。
3、一致性
1)秒杀中商品减库存的实现方式很重要,秒杀涉及商品的减库存,减库存又分为“拍下减库存”、“付款减库存”以及预扣等几种。
4、高可用
1)秒杀需要保证系统的高可用和正确性,需要审计一个 PlanB 来兜底。
参考文献:
[1]许令波. 如何设计一个秒杀系统[M]. 极客时间, 2018.