我是靠谱客的博主 潇洒抽屉,最近开发中收集的这篇文章主要介绍如何设计一个秒杀系统——秒杀系统架构设计都有哪些关键点,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、如何理解秒杀系统

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

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

二、秒杀系统的要求

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

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

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

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

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

       1、高性能

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

       2、一致性

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

       3、高可用

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

 

 

       

最后

以上就是潇洒抽屉为你收集整理的如何设计一个秒杀系统——秒杀系统架构设计都有哪些关键点的全部内容,希望文章能够帮你解决如何设计一个秒杀系统——秒杀系统架构设计都有哪些关键点所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部