如何设计一个秒杀系统——开篇词|秒杀系统架构设计有哪些关键点?
程序员文章站
2022-06-22 13:15:30
最近在阅读许令波的极客专栏“如何设计一个秒杀系统”,话说马上要到双11了,秒杀系统的知识也能应用到里面。 许令波简介: 许令波,花名“君山”。说起来我的职业生涯算是比较简单,2009 年大学毕业后就进入了淘宝,一直工作了七年多。这七年多的时间里,我有幸看到了淘宝业务的快速增长,并且以开发者的身份参与 ......
最近在阅读许令波的极客专栏“如何设计一个秒杀系统”,话说马上要到双11了,秒杀系统的知识也能应用到里面。
许令波简介:
许令波,花名“君山”。说起来我的职业生涯算是比较简单,2009 年大学毕业后就进入了淘宝,一直工作了七年多。这七年多的时间里,我有幸看到了淘宝业务的快速增长,并且以开发者的身份参与其中。
说实话,作为一名程序员,我的技术能力也在公司业务的快速增长过程中得到了历练,并积累了一些大流量高并发网站架构设计和优化的经验,尤其是针对“秒杀”这个场景。因为我确信,那个时候我们肯定是对系统做了足够多的极致优化,才能扛住当时洪峰般的流量请求。
如何理解秒杀系统?
作为程序员,从整体思考问题,主要解决两个问题:
1.并发读 核心:减少用户到服务端读数据,或读更少的数据
2.并发写 核心:处理原则也一样,要求我们在数据库层面独立一个库,特殊处理,还要设计兜底方案,防止最坏情况发生。
从架构师角度考虑: 如何打造并维护一个超大流量并发读写、高性能、高可用系统。
具体分为三块:
1.高性能
支持高并发访问,主要四个方面来做优化
(1)数据库的动静分离方案 (2)热点的发现与隔离 (3)请求的削峰与分层过滤 (4)服务端的极致优化
2.一致性
秒杀商品的减库存,保证数据的一致性。有限的商品会在某一时刻被大量请求同时减库存,并且减库存的方案也有多种。
3.高可用
保证系统的高可用和确定性,还要准备一个planb
下篇内容:设计秒杀系统时应该注意的5个架构原则