文章插图

文章插图
MySQL Fabirc
MySQL Fabirc , 是 mysql 官方提供的 。这是在 MySQL Replication 的基础上 , 增加了故障检测
与转移 , 自动数据分片功能 。不过依旧是一主多从的结构 , MySQL Fabirc 只有一个主节点 ,
区别是当该主节点挂了以后 , 会从从节点中选择一个来当主节点 。

文章插图
就各个集群方案来说 , 其优势为:
1. mysql 官方提供的工具 , 无需第三方插件 。
2. 数据被删除 , 可以从 binlog 日志中恢复 。
3. 主节点挂了以后 , 能够自动从从节点中选择一个来当主节点 , 不影响持续对外提供写服
务 。
其劣势为:
1. 从库要从 binlog 获取数据并重放 , 这肯定与主库写入数据存在时间延迟 , 因此从库的数
据总是要滞后主库 。
2. 对主库与从库之间的网络延迟要求较高 , 若网络延迟太高 , 将加重上述的滞后 , 造成最
终数据的不一致 。
3. 2014 年 5 月推出的产品 , 数据库资历较浅 , 应用案例不多 , 网上各种资料相对较少 。
4. 事务及查询只支持在同一个分片内 , 事务中更新的数据不能跨分片 , 查询语句返回的数
据也不能跨分片 。
5. 节点故障恢复 30 秒或更长(采用 InnoDB 存储引擎的都这样) 。
MySQL Cluster
MySQL 集群(MySQL Cluster)也是 mysql 官方提供的 。

文章插图
MySQL Cluster 是多主多从结构的
就各个集群方案来说 , 其优势为:
1.
mysql 官方提供的工具 , 无需第三方插件 。
2.
高可用性优秀 , 99.999%的可用性 , 可以自动切分数据 , 能跨节点冗余数据(其数据集并
不是存储某个特定的 MySQL 实例上 , 而是被分布在多个 Data Nodes 中 , 即一个 table 的
数据可能被分散在多个物理节点上 , 任何数据都会在多个 Data Nodes 上冗余备份 。任何
一个数据变更操作 , 都将在一组 Data Nodes 上同步 , 以保证数据的一致性) 。
3.
可伸缩性优秀 , 能自动切分数据 , 方便数据库的水平拓展 。
4.
负载均衡优秀 , 可同时用于读操作、写操作都都密集的应用 , 也可以使用 SQL 和 NOSQL
接口访问数据 。
5.
多个主节点 , 没有单点故障的问题 , 节点故障恢复通常小于 1 秒 。
其劣势为:
1. 架构模式和原理很复杂 。
2. 只能使用存储引擎 NDB , 与平常使用的 InnoDB 有很多明显的差距 。比如在事务(其
事务隔离级别只支持 Read Committed , 即一个事务在提交前 , 查询不到在事务内所做的
修改) , 外键(虽然最新的 NDB 存储引擎已经支持外键 , 但性能有问题 , 因为外键所关
联的记录可能在别的分片节点) , 表现制上的不同 , 可能会导致日常开发出现意外 。
3. 作为分布式的数据库系统 , 各个节点之间存在大量的数据通讯 , 比如所有访问都是需要
经过超过一个节点(至少有一个 SQL Node 和一个 NDB Node)才能完成 , 因此对节点之
间的内部互联网络带宽要求高 。
4. Data Node 数据会被尽量放在内存中 , 对内存要求大 , 而且重启的时候 , 数据节点将数
据 load 到内存需要很长时间 。
第三方集群方案
MMM
MMM(Master Replication Manager for MySQL)是双主多从结构 , MMM 是在 MySQL Replication
的基础上 , 对其进行优化 。这是 google 的开源项目 , 使用 Perl 语言来对 MySQL Replication
做扩展 , 提供一套支持双主故障切换和双主日常管理的脚本程序 , 主要用来监控 mysql 主主
复制并做失败转移 。

文章插图
注意:这里的双主节点 , 虽然叫做双主复制 , 但是业务上同一时刻只允许对一个主进行写入 ,
推荐阅读
- 华为p50开售上市时间 华为官方p50上市时间
- 盘点 7 月份 yyds 的开源项目
- 生蚝买开口的还是闭口的 怎样挑选新鲜的活生蚝呢
- 贷款|男子从原单位离职后去面试遭遇骗局!这样的公司薪资开得再高都不能去!
- 历史|大书法家颜真卿早期书法真迹公开展出:全国唯一合法考古出土
- 红薯|“如果我们所处的环境是修仙世界,你会选择用什么武器?”网友脑洞大开!
- 新浪微博|无法主动关闭!微博:全量开放评论展示IP属地功能
- Win10专业版开启内置管理员账户
- Nginx 内存池似懂非懂?一文带你看清高性能服务器内存池
- 服务器常见的接口及其用途
