1 秒杀流程
秒杀的业务特点:(1)有时间限制,秒杀开始时间和秒杀结束时间 (2)商品库存有限制,库存不可能是无限大小的 (3)并发量大
2 秒杀技术挑战
1 对现有网站业务造成冲击
秒杀活动只是网站营销的一个附加活动,这个活动具有时间短,并发访问量大的特点,如果和网站原有应用部署在一起,必然会对现有业务造成冲击。
解决方案:将秒杀系统独立部署,甚至使用独立域名
2 采用传统的单体应用还是分布式服务架构
单体应用扩展不灵活,采用分布式服务架构可以更加灵活的利用服务器资源
3 高并发下的应用、数据库负载
用户在秒杀开始前,通过不停刷新秒杀商品列表页面以保证不会错过秒杀,如果是访问数据库的话,必然造成数据库服务负载过大
解决方案:秒杀商品列表页面静态化,(可以采用httpClient访问controller后,生成html文件)并缓存在CDN服务器上
4 如何控制秒杀商品页面购买按钮的点亮和生成下单url地址
通过jquery控制倒计时显示框,倒计时结束后将购买按钮点亮,同时通过ajax请求后台,动态生成下单url地址
5 秒杀商品列表页面的动态更新
由于项目采用分布式架构,这里采用quarz配置分布式定时任务,定时生成秒杀商品列表页面
6 商品详情页面查询优化
由于商品详情页面并发量大,可以采用redis作为一级缓存,ehcache作为二级缓存