分库分表实战及中间件之实战背景
一、实战背景
1、背景描述
- 刚开始我们的系统只用了单机数据库
- 随着用户的不断增多,考虑到系统的高可用和越来越多的用户请求,我们开始使用数据库主从架构
- 当用户量级和业务进一步提升后,写请求越来越多,这时我们开始使用了分库分表
2、遇到的问题
- 用户请求量太大
单服务器TPS、内存、IO都是有上限的,需要将请求打散分布到多个服务器 - 单库数据量太大
单个数据库处理能力有限;单库所在服务器的磁盘空间有限;单库上的操作IO有瓶颈 - 单表数据量太大
查询、插入、更新操作都会变慢,在加字段、加索引、机器迁移都会产生高负载,影响服务
3、如何解决
3.1 垂直拆分
3.1.1 垂直分库
微服务架构时,业务切割得足够独立,数据也会按照业务切分,保证业务数据隔离,大大提升了数据库的吞吐能力。