回答内容:
秒杀其实主要解决两个问题,一个是并发读,一个是并发写(并发读核心就是减少用户来服务端来读数据;并发写核心就是在数据库层面独立出来一个库,做特殊得处理)。同时还要针对秒杀系统做一些保护,针对意外情况下设计兜底方案,防止最坏情况发生。
秒杀系统得要求也就是高可用,一致性,高并发。
高性能:动静分离方案;热点数据发现与隔离;请求得削峰与分层过滤;服务端得优化
设计原则:4要1不要
1.数据尽量少; 用户请求数据能少就少;系统依赖数据能少就少
2.请求数尽量少:
3.路径尽量短:用户请求到返回数据过程种,需要经过得节点数
4.依赖尽量少:完成一次请求必须依赖得系统或者服务尽量少,强依赖。
5.不要有单点
1.页面动静分离 cdn
2.热点数据处理:
1.业务隔离 2.系统隔离 3.数据隔离
可以使用缓存预热方案
缓存:本地缓存+redis缓存
限流:客户端限流+服务端限流
削峰:队列
分库分表