为什么需要消息中间件
高并发、海量数据的情况下:
1 .数据库存储的数据量不是很大,但并发的读写操作都很大,超过数据库服务器的处理能力。
2.应用的业务模块很多,总得数据量很大,并发读写操作均超过单个数据库服务器的处理能力。
3.如果单个表的数量很大,超出了单表的存储上限,如电商网站的商品表、订单表等。
为解决数据存储、访问性能问题我们需要数据库中间件。数据库中间件让我们可以在应用程序中快速应用读写分离、分库分表。
数据库中间件设计要点
- 要能解析SQL
- 能支持读写分离
- 能支持从库读的负载均衡
- 支持分库操作
- 支持分表操作
- 支持跨库关联查询
- 对实务处理的支持
- 主键ID生成
- 数据源管理
数据库拆分
垂直拆分
由单个数据库按照业务拆分多个数据库,如根据业务拆分出用户数据库、订单数据库、支付数据库。
优点:
1.拆分后业务清晰,拆分规则明确;
2.系统之间整合或扩展容易;
3.数据库维护简单
缺点:
1.部分业务表无法join,