高并发业务
2017-08-24 10:31 安松 阅读(288) 评论(0) 编辑 收藏 举报一. 秒杀下订单
A:准备工作
1. 系统最好独立部署
2. 做好系统性能容量规划(预计访问量)(7折计算),系统优化,容灾过载保护
3. 做好系统的拆分,比如,按功能模块,按实时/非实时、按动态/静态等等
4. 设置定时上架的时间
5. 服务器时钟同步
6. 动态生成下单页面的URL
B:前端页面
1. 静态页面+Ajax来获取动态内容,比如:实时库存、活动状态、当前时间等
2. 做好CDN部署
3. 静态页面和资源的缓存
4. js对请求的过滤,比如:获取校验码、时间到了或者售完自动结束等
C:web端
1. F5/LVS +Nginx来接收高并发的请求,并做负载均衡
2. Nginx+Lua(脚本)+Redis来做请求队列,并实现一些基本控制(Lua),比如:限流、账号参加次数检查、同一个ip请求数检查等
3. Varnish来缓存静态页面和静态资源
4. 进入Tomcat集群,先做一个预处理,就是判断这些账户是否能参与活动,比如:账号等级是否足够、账号行为是否正常、是否在黑名单上等
D:逻辑层
1. 按照redis的请求队列进行先后处理
2. 纯内存操作+异步
3. 控制超卖
4. Redis里面存放着SKU的库存数据
5. 处理成功的信息
E:其他
1. 合理设计接口
2. 考虑业务规则,比如减库存的时机
3. 服务器尽量做集群,并做HA,避免雪崩()
4. 缓存服务器如果要重启,要做预热()
5. 对抗作弊