万隆的笔记 万隆的笔记
博文索引
笔试面试
  • 在线学站

    • 菜鸟教程 (opens new window)
    • 入门教程 (opens new window)
    • Coursera (opens new window)
  • 在线文档

    • w3school (opens new window)
    • Bootstrap (opens new window)
    • Vue (opens new window)
    • 阿里开发者藏经阁 (opens new window)
  • 在线工具

    • tool 工具集 (opens new window)
    • bejson 工具集 (opens new window)
    • 文档转换 (opens new window)
  • 更多在线资源
  • Changlog
  • Aboutme
GitHub (opens new window)
博文索引
笔试面试
  • 在线学站

    • 菜鸟教程 (opens new window)
    • 入门教程 (opens new window)
    • Coursera (opens new window)
  • 在线文档

    • w3school (opens new window)
    • Bootstrap (opens new window)
    • Vue (opens new window)
    • 阿里开发者藏经阁 (opens new window)
  • 在线工具

    • tool 工具集 (opens new window)
    • bejson 工具集 (opens new window)
    • 文档转换 (opens new window)
  • 更多在线资源
  • Changlog
  • Aboutme
GitHub (opens new window)
  • MySQL

  • 架构原理

  • 索引与优化

  • 事务和锁

  • 集群架构

    • 集群架构设计
      • 可用性设计
      • 扩展性设计
      • 一致性设计
    • 主从模式
    • 双主模式
    • 分库分表
    • 分库分表案例
    • Docker搭建MySQL主从架构
    • MySQL Proxy读写分离
    • Docker搭建MySQL双主架构
  • MySQL
  • 集群架构
2022-03-22
目录

集群架构设计

# 集群架构设计

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

# 可用性设计

  • 站点高可用,冗余站点
  • 服务高可用,冗余服务
  • 数据高可用,冗余数据

保证高可用的方法是冗余。但是数据冗余带来的问题是数据一致性问题。

实现高可用的方案有以下几种架构模式:

  • 主从模式:简单灵活,能满足多种需求。比较主流的用法,但是写操作高可用需要自行处理。
  • 双主模式:互为主从,有双主双写、双主单写两种方式,建议使用双主单写。

# 扩展性设计

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

  • 如何扩展以提高读性能?
    • 加从库:简单易操作,方案成熟。但是从库过多会引发主库性能损耗。建议不要作为长期的扩充方案,应该设法用良好的设计以避免持续加从库来缓解读性能问题。
    • 分库分表:可以分为垂直拆分和水平拆分,垂直拆分可以缓解部分压力,水平拆分理论上可以无限扩展。
  • 如何扩展以提高写性能?
    • 分库分表

# 一致性设计

一致性主要考虑集群中各数据库数据同步以及同步延迟问题。可以采用的方案如下:

  • 不使用从库:扩展读性能问题需要单独考虑,否则容易出现系统瓶颈。
  • 增加访问路由层:可以先得到主从同步最长时间t,在数据发生修改后的t时间内,先访问主库。
#MySQL集群架构
上次更新: 5/30/2023, 11:09:19 PM
主从模式

主从模式→

最近更新
01
2025
01-15
02
Elasticsearch面试题
07-17
03
Elasticsearch进阶
07-16
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式