折扣商品限时秒杀抢购系统
- 秒杀系统基于Spring Boot搭建,针对多人秒杀抢购系统做了良好的优化。
- 前端使用CDN缓存和限制重复秒杀减小对服务器的压力。
- 后端使用Redis 进行缓存,减少对数据库请求的压力,使用RabbitMQ异步实现数据库更新。
- 经过测试优化,系统的平均响应时间减少67%,吞吐量增加74%。
| 秒杀流程 |
|---|
![]() |
库存预减用的是哪个redis方法
-
decr 变量:变量减一。
-
incr 变量:变量加一。
如果项目中的redis服务挂掉,如何减轻数据库的压力
- 集群+主从。
- 熔断器降级,在redis取数据做一次熔断降级,报错直接走数据库。
如何避免消息队列的消费方重复消费消息
- 数据库唯一约束实现幂等,字段使用Message的key做唯一索引。
消息的消费结果如何返回给消息发送方
- 信道设置成confirm模式,
说一下你的秒杀系统设计,怎么解决超卖的
- 行锁,set stock=stock-1 where stock>0
- 乐观锁
- LUA脚本把判断库存扣减库存的操作都写在一起交给Redis去做
你说你用到了redis,redis有哪些数据结构,你为什么要用redis,哪里用到了,为什么说redis快,多路io复用详细原理可以说说嘛?
- 略
redis,深入讲一讲,并说一下它的应用场景
- 缓存;限时业务,计数器;分布式锁;队列(push,pop)。
秒杀模块怎么设计的,如何压测,抗压手段,消息队列怎么用的
- JMeter,消息队列异步修改库存。
秒杀系统服务器抗压思路,从哪些方面去优化
-
服务单一职责:秒杀的业务逻辑放一起。
-
前端:秒杀链接加盐加密,资源静态化,按钮控制。
-
Redis集群,Nginx负载均衡,库存预热。
-
限流,降级,熔断,隔离。
-
消息队列:削峰填谷。
秒杀项目,别说你里面的优化,你还有什么优化策略吗?
- 多服务器负载均衡,把秒杀商品平均分给服务器。
秒杀系统的前端设计怎么做
-
商品页面:用于所有秒杀商品的展示。
-
秒杀页面:用于秒杀商品的展示和秒杀功能。
说说秒杀如何实现的
- 用户请求发送到消息队列中,消息队列异步处理秒杀请求。
秒杀过程中怎么保证redis缓存和数据库的一致性
- 先更新数据库,再更新缓存
- 删除缓存,更新数据库
- 更新数据库,删除缓存
秒杀接口防刷怎么做
- 秒杀链接加盐。
- URL动态化,通过MD5之类的加密算法加密随机的字符串去做url,然后通过前端代码获取url后台校验才能通过。
Redis和数据库数据不一致怎么办,以什么为准
- 以数据库为准。
你知道的越多,你不知道的越多。


浙公网安备 33010602011771号