集群架构设计
# 集群架构设计
在集群架构设计时,主要遵从可用性、扩展性、一致性三个维度。
# 可用性设计
- 站点高可用,冗余站点
- 服务高可用,冗余服务
- 数据高可用,冗余数据
保证高可用的方法是冗余。但是数据冗余带来的问题是数据一致性问题。
实现高可用的方案有以下几种架构模式:
- 主从模式:简单灵活,能满足多种需求。比较主流的用法,但是写操作高可用需要自行处理。
- 双主模式:互为主从,有双主双写、双主单写两种方式,建议使用双主单写。
# 扩展性设计
扩展性主要围绕着读操作扩展和写操作扩展展开。
- 如何扩展以提高读性能?
- 加从库:简单易操作,方案成熟。但是从库过多会引发主库性能损耗。建议不要作为长期的扩充方案,应该设法用良好的设计以避免持续加从库来缓解读性能问题。
- 分库分表:可以分为垂直拆分和水平拆分,垂直拆分可以缓解部分压力,水平拆分理论上可以无限扩展。
- 如何扩展以提高写性能?
- 分库分表
# 一致性设计
一致性主要考虑集群中各数据库数据同步以及同步延迟问题。可以采用的方案如下:
- 不使用从库:扩展读性能问题需要单独考虑,否则容易出现系统瓶颈。
- 增加访问路由层:可以先得到主从同步最长时间t,在数据发生修改后的t时间内,先访问主库。
上次更新: 5/30/2023, 11:09:19 PM