Week09 作业
设计一个秒杀系统,主要的挑战和问题有哪些?核心的架构方案或者思路有哪些?
秒杀系统主要面临的挑战:
高并发,系统的瞬时流程非常大,是平常的几倍甚至几十倍;
访问请求数量远远大于库存数量,只有少部分用户能够秒杀成功,必须控制好库存
核心架构:
限流:只有少量用户能秒杀成功,要限制大部分流量,做好并发控制;
削峰:一般采用前端验证码或者消息中间件,避免顺势流程过大。同时在业务场景上可以规避所有用户同一时间访问
异步:采用异步处理能极大提升系统处理能力,一定程度达到削峰的目的;
缓存: 尽量使用Redis等缓存,避免直接访问数据库
可扩展:能根据用户访问情况动态扩展或者回收服务器或容器
CDN:前端页面尽量静态化,静态页面缓存在CDN
用户限流:限制用户短时间内访问或提交的次数;
防止DDOS攻击
评论