架构师训练营 week09 作业
设计一个秒杀系统,主要的挑战和问题有哪些?核心的架构方案或者思路有哪些?
主要挑战或者问题:
1) 响应要快,无论如何,尽可能的要快速响应用户.
2) 并发量过大,有可能带来系统的高并发引起的雪崩等情况.
3) 超买超卖问题,由于高并发可能带来数据的不一致问题.
4) 防作弊, 防止一个用户发送多次请求,或者一个IP登录多个用户秒杀的情况.
针对以上问题的解决思路是:
1) 响应快, 前端页面静态化, 引入CDN, 缓存加快处理速度,引入队列进行排队等候进行异步订单处理.
2) 并发量过大, 硬件方面: 加大带宽,加大服务器硬件性能等, 软件方面: 引入CDN, 服务端分层进行过滤拦截减少请求数, 引入队列进行削峰处理, 引入缓存, 数据进行拆分, 不相干数据进行剥离减少数据库的压力. 将业务进行水平拆分, 方便进行水平服务器压力扩容. 我认为数据读写分离,减少读库和写库的压力不符合秒杀的场景,很难保证读库和写库的实时一致性, 是一个增加并发量的思路.
3) 超买超卖的现象,需要加入强一致性锁, 如果是分布式系统,需要有分布式一致事务进行处理.
4) 防作弊,可以通过服务端请求进行拦截过滤掉.
评论