如何设计一个秒杀系统——秒杀系统架构设计都有哪些关键点

一、如何理解秒杀系统

       秒杀系统其实主要解决两个问题,一个是并发读,一个是并发写。并发读的核心优化理念是尽量减少用户到服务端来“读”数据,或者让他们读更少的数据;并发写的处理原则也一样,它要求我们在数据库层面独立出来一个库,做特殊的处理。另外,我们还要针对秒杀系统做一些保护,针对意料之外的情况设计兜底方案,以防止最坏的情况发生。

       总之,要遵循几个原则,就是要保证用户请求的数据尽量少、请求数尽量少、路径尽量短、依赖尽量少,并且不要有单点。

二、秒杀系统的要求

       其实,秒杀的整体架构可以概括为“稳、准、快”几个关键字。

       1、所谓稳,就是整个系统架构要满足高可用,流量符合预期时肯定要稳定,就是超出预期时也不能掉链子,要保证秒杀活动顺利完成。

       2、所谓准,就是秒杀10台iPhone,那就只能成交10台,多一台少一台都不行。一旦库存不对,那平台就要承担损失,所以准就是要求保证数据一致性

       3、所谓快,就是说系统的性能要足够高,否则你怎么支撑这么大的流量呢?不光是服务器端要做极致的性能优化,而且在整个请求链路上都要做协同的优化,每个地方快一点,整个系统就完美了。

       稳、准、快对应架构上的高可用、一致性和高性能的要求。

       1、高性能

       秒杀涉及大量的并发读和并发写,因此支持高并发访问。系列笔记,从设计数据的动静分离方案、热点的发现与隔离、请求的削峰与分层过滤、服务端的极致优化这4个方面介绍。

       2、一致性

       秒杀中商品减库存的实现方式同样关键。可想而知,有限数量的商品在同一时刻被很多倍的请求同时来减库存减库存又分为“拍下减库存”、“付款减库存”以及预扣等几种,在大并发更新的过程中都要保证数据的准确性,其难度可想而知。后面会专门讲解如何设计秒杀减库存方案。

       3、高可用

       就是设计PlanB来兜底,以便在最坏情况发生时仍然能够从容应对。

 

 

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值