Skip to content
个人笔记
Search
Main Navigation
示例
押题
JAVA面经
开发笔记
JAVA
JAVA8新特性
随手记
工具包hutool
MYSQL
MAVEN
maven的特性
pom的配置
maven的使用
dev笔记
实战
微服务
锁的概念
实体命名规则
jzt任务记录
云ERP
部署与运维
Docker
Jenkins
实战
自动化
其他
随手记
组件demo
平台
Appearance
Menu
Return to top
页面导航
如果让你设计一个秒杀系统,你会考虑哪些方面?(引导你从网关限流、缓存、库存扣减、异步化、降级熔断等方面回答)
前端防重复点击,网关做好全局限流,第一道防线
用户级别限流,防止非法脚本,甚至可以短时间列入黑名单
熔断降级策略,防止服务器系统负载过高
多级缓存,抗压
redis集群,抗压
缓存预热
库存扣减利用redis的lua脚本,比数据库更快,然后异步更新库
异步创建订单,并且表设计优化,先存储关键信息,再异步补全其他信息
如何设计一个分布式锁?
互斥,redis单线程,就是很好的选择
可重入,存储当前线程id + 计数器
锁超时自动释放,防止死锁
也可以加入监听续约,以及轮询等待锁等功能。