2 期架构师训练营 - 第九周作业与总结
作业
设计一个秒杀系统,主要的挑战和问题有哪些?核心的架构方案或者思路有哪些?
秒杀系统主要的挑战是高并发和安全。
秒杀开始的时候在短时间内会涌进来非常高的流量,给系统带来极大的压力,设计不当的话可能会导致秒杀系统崩溃,严重的会出现服务雪崩,把业务系统也给搞垮。应对高并发的整体思路有以下几点:
秒杀系统独立部署,和原业务系统进行隔离,使用独立数据库
商品内容页面静态化和 CDN 缓存,减轻服务端的压力
在靠近用户侧的应用服务端对请求进行过滤和抛弃,避免压力冲到数据库
另一个挑战是安全,我们知道现在的羊毛党手段非常多,使用脚本自动化抢单已经是常规手段,这些作弊行为让普通用户根本无法抢得到商品,不利于实现我们的运营目的。安全方面我们可以切入的点有:
隐藏后端请求地址,只有在活动开始时前端/客户端才能拿到地址
针对用户级别进行限频(不适用 IP 级别,同一个 wifi 时会误伤)
提高业务门槛
评论