高并发系统设计
1. 服务单一职责,独立部署
高并发微服务崩了也不影响其他服务
2. 请求链接加密
防止用恶意模拟请求攻击,请求链接加入随机码的请求参数,只有秒杀开始才才携带随机码请求接口链接
3. 库存预热快速扣减
使用分布式信号量,把库存存入redis中
4. 动静分离
使用nginx请求静态资源,或使用CDN网络
5. 恶意请求拦截
网关层识别非法攻击请求进行拦截
6. 流量错峰
使用加入购物车的方式实现错峰,用户下单点击速度有快有慢
7. 限流&熔断&降级
保证系统稳定性
8. 队列削峰
秒杀成功的订单使用消息队列异步创建订单等信息
高并发系统思路
读操作:
- 使用CDN网络
- 架构网关层限流,拦截恶意请求
- 用redis缓存商品数据
写操作:
- 用redison分布式信号量表示库存数
- 用消息队列异步创建成功秒杀的订单
每个请求在20毫秒左右即可执行完毕,tomcat每秒最多开启500个线程则该系统每秒并发量为25000