一、数据库架构原则
- 高可用
- 高性能
- 一致性
- 扩展性
二、常见的数据库架构方案
方案一:主备架构,只有主库提供读写服务,备库冗余作故障转移用
jdbc:mysql://vip:3306/xxdb
1、 高可用分析: 高可用,主库挂了,keepalive(只是一种工具)会自动切换到备库。这个过程对业务层是透明的,无需修改代码或配置。
2、 高性能分析: 读写都操作主库,很容易产生瓶颈。大部分互联网应用读多写少,读会先成为瓶颈,进而影响写性能。另外,备库只是单纯的备份,资源利用率50%,这点方案二可解决。
3、 一致性分析: 读写都操作主库,不存在数据一致性问题。
4、 扩展性分析: 无法通过加从库来扩展读性能,进而提高整体性能。
5、 可落地分析: 两点影响落地使用。第一,性能一般,这点可以通过建立高效的索引和引入缓存来增加读性能,进而提高性能。这也是通用的方案。第二,扩展性差,这点可以通过 分库分表 来扩展。
方案二:双主架构,两个主库同时提供服务,负载均衡
jdbc:mysql://vip:3306/xxdb
1、 高可用分析: 高可用,一个主库挂了,不影响另一台主库提供服务。这个过程对业务层是透明的,无需修改代码或配置。
2、 高性能分析: 读写性能相比于方案一