关系型数据库的伸缩
读写分离
-
缓存和搜索引擎本质上也是一种读写分离
-
商品是典型的读多写少的场景
分库分表
略知一二
分表
分库
- 业务量大的数据基本都得使用分库分表,不然单表的数据量大之后,性能太差
数据迁移和扩容
成倍扩容
- 直接让备库变为主库,实现二变四。
- 扩容成倍增加
增量存量同步
- 增量同步,存量迁移
- 当数据同步好之后,修改路由表
热点数据
热点数据的隔离方案
- 把访问频次特别高的数据单独抽取出来
- 热点商品的特征
- 数量少
- 访问频次非常高
- 存储方案
- 热点散列
- 热点库
- 多级缓存:解决秒杀问题的杀手锏
侦听动态热点
-
识别热点
-
隔离热点
- 缓存预热
- 访问单元隔离
- 数据隔离
- 接口隔离
-
性能优化
- 缓存
- 降级熔断
- 限流
面试题
设计一个支撑XXX并发量的应用,从数据层面有什么要考虑的?
- 底层数据:读写分离 + 集群扩展、备库、异构 + 分库分表
热点数据怎么防范
- 预知热点:热点库、本地缓存 + 多级缓存
- 动态热点:热点数据的侦听(接口参数聚合,日志埋点统计) + 通知送达节点
分库分表之后,业务量增加需要扩容,如何处理
分库分表数据的迁移和扩容(备库转主库,2N扩容)