高并发业务

一. 秒杀下订单

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. 对抗作弊

原文地址:https://www.cnblogs.com/an5211/p/7421738.html