一、秒杀场景的特点
秒杀的商品具有价格低、库存有限、定时开始的特点,因此秒杀场景最大的特点就是高并发。数以千万的用户的流量集中在某个时间点上(即秒杀开始时),给后端服务器造成很大压力,如果不能进行有效削峰、限流,所有请求一次性打到某一台服务器或数据库上,必然造成服务的不可用,给用户造成不良体验。
二、整体架构设计
在整体架构上,用户的请求首先通过一个网关进行负载均衡,根据负载均衡算法的不同,应用不同的策略将请求转发给对应的应用服务器,服务器对用户的请求进行限流,拒绝大部分的请求。根据Redis中缓存的商品信息,判断当前秒杀是否已结束,如果秒杀结束,拒接请求并设置内存标记,后续的请求直接拒绝,无需再查询Redis缓存;如果秒杀未结束,将请求入队MQ,进行异步处理,进一步削峰。
多个消费者从MQ中取消息,进行处