今日面试遇到的问题
问:设计一个高可用的大型秒杀解决方案
我心想redis实现嘛,毕竟单线程,但问题来了,像淘宝、京东这种高负载的平台,总不能一台redis实例吧,那么如果部署多台redis实例就会有数据一致性的问题(例如某sku商品秒杀数为100件),请问各位大佬,大厂的这种秒杀是什么样的一个实现方案呢?
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
2 回答984 阅读
秒杀场景的业务特点:
一、瞬间并发量大
二、库存少
三、业务流程简单
架构设计思想:
1、限流,因为只有少数人能秒杀成功,所以要限制大部分流量进入后端
2、削峰,使用缓存和消息中间件
3、异步,将同步的业务设计成异步处理
4、内存缓存,瓶颈是数据库读写,使用内存缓存和内存数据库(redis)
5、分布式负载,多节点分摊流量,达到高可用
6、优化,动静分离,将静态数据部署到cdn节点