一、集群架构设计
1、架构设计理念
在集群架构设计时,主要遵从下面三个维度:
- 可用性
- 扩展性
- 一致性
2、可用性设计
- 站点高可用,冗余站点
- 服务高可用,冗余服务
- 数据高可用,冗余数据
保证高可用的方法是冗余。但是数据冗余带来的问题是数据一致性问题。
实现高可用的方案有以下几种架构模式:
- 主从模式
简单灵活,能满足多种需求。比较主流的用法,但是写操作高可用需要自行处理。 - 双主模式
互为主从,有双主双写、双主单写两种方式,建议使用双主单写。
3、扩展性设计
扩展性主要围绕着读操作扩展和写操作扩展展开。
3.1 如何扩展以提高读性能
- 加从库
简单易操作,方案成熟。
从库过多会引发主库性能损耗。建议不要作为长期的扩充方案,应该设法用良好的设计避免 持续加从库来缓解读性能问题。 - 分库分表
可以分为垂直拆分和水平拆分,垂直拆分可以缓解部分压力,水平拆分理论上可