HomeWork
设计一个秒杀系统,主要的挑战和问题有哪些?核心架构方案和思路有哪些?
核心挑战:
l 瞬间高并发带来的网络带宽急剧增加,服务端网络带宽耗尽
l 瞬间高并发带来的服务器处理压力过大,服务器停止响应
l 瞬间高并发带来的数据库读写压力过大,数据库瘫痪
l 反作弊的挑战,包括如何阻止秒杀器的疯狂刷新页面和绕过秒杀页面直接进入支付页面
思路:
l 为了解决网络带宽问题,需要引入CDN和反向代理服务器平摊网络带宽压力
l 为了解决瞬间服务器压力问题,应该做好并发控制,只放最前面一批人进入秒杀系统,后面的人直接告知秒杀结束了,同时服务器的流程尽量精简以加快处理速度
l 为了减少数据库压力,尽可能砍掉秒杀流程中的数据库访问操作,在并发控制筛选掉大批量流量后,对秒杀成功的人才开放数据库的操作
l 反作弊需要有防秒刷检测和支付界面的token验证机制
核心架构方案:
l 前端页面静态化,提升页面响应速度
l CDN服务器提前导入秒杀页面内容以加速页面响应
l Web服务器相关参数调优
l 所有服务器参与并发控制——前1000人可以通过网页服务器看到秒杀页面内容、前100人可以下订单、前50人可以进入支付页面
l 简化秒杀业务的流程中的数据库访问
l 做秒杀业务的域名分离和备用服务器设置
l 流量耗尽时关闭非核心应用集群,全力保障业务正常运行
版权声明: 本文为 InfoQ 作者【天之彼方】的原创文章。
原文链接:【http://xie.infoq.cn/article/5a061d7dd965470807e5a3d91】。文章转载请联系作者。
评论