一、架构设计理念

在集群架构设计时,主要遵从下面三个维度:可用性 、扩展性 、一致性

二、可用性设计

1 高可用

1 站点高可用,冗余站点

2 服务高可用,冗余服务

3 数据高可用,冗余数据

2 保证高可用的方法是冗余

1 需要考虑数据冗余带来的问题是数据一致性问题。

3 高可用架构

1 主从模式

简单灵活,能满足多种需求。比较主流的用法,但是写操作高可用需要自行处理。

2 双主模式

互为主从,有双主双写、双主单写两种方式,建议使用双主单写

三、 扩展性设计

扩展性主要围绕着读操作扩展和写操作扩展展开。

1 如何扩展以提高读性能

1 加从库

1 简单易操作,方案成熟。
2 从库过多会引发主库性能损耗。建议不要作为长期的扩充方案,应该设法用良好的设计避免 持续加从库来缓解读性能问题。

2 分库分表

可以分为垂直拆分和水平拆分,垂直拆分可以缓解部分压力,水平拆分理论上可以无限扩 展。

2 如何扩展以提高写性能

分库分表

四、一致性设计

一致性主要考虑集群中各数据库数据同步以及同步延迟问题。

1 不使用从库

扩展读性能问题需要单独考虑,否则容易出现系统瓶颈。

2 增加访问路由层

可以先得到主从同步最长时间t,在数据发生修改后的t时间内,先访问主库。