全部学科
Python全栈
python
NodeJS全栈
nodejs
📝 1 篇文章 22 道配套习题

高可用架构与分布式实践

专题说明

本专题深入剖析MySQL高可用架构与分布式实践,帮助开发者掌握主从复制、分库分表、高可用切换、负载均衡、分布式事务等核心技术,构建稳定可靠的企业级数据库架构。

学习目标

  1. 理解主从复制原理与读写分离架构
  2. 掌握分库分表的策略与实施方法
  3. 理解MHA/Orchestrator高可用切换方案
  4. 掌握ProxySQL中间件的配置与使用
  5. 理解分布式事务XA协议的实现机制
  6. 了解MySQL Cluster分布式集群方案

学习内容

本专题涵盖以下核心知识点:

  • 主从复制与读写分离:复制原理、异步/半同步复制、读写分离架构
  • 分库分表策略:垂直分库、水平分库、分片键选择、中间件方案
  • 高可用方案MHA/Orchestrator:故障检测、自动切换、数据补齐
  • ProxySQL与负载均衡:读写分离规则、负载均衡策略、连接池管理
  • 分布式事务与XA协议:两阶段提交、XA事务、分布式一致性
  • MySQL Cluster:NDB架构、无共享设计、自动分片

学习建议

  1. 先理解主从复制原理,这是高可用架构的基础
  2. 重点掌握分库分表的分片键选择,直接影响数据分布
  3. 理解MHA切换流程,熟悉故障处理机制
  4. ProxySQL配置实践,掌握读写分离规则设置
  5. 分布式事务理解两阶段提交,注意性能与一致性的权衡
  6. 结合实际场景选择合适的高可用方案

📝 配套习题(22 题)

💡 参考答案在文末
判断题
1

ProxySQL可以根据SQL类型或查询规则自动将写请求路由到主库、读请求路由到从库。

A

B

2

垂直分库是将不同的表按照业务拆分到不同的数据库实例中,例如将用户表和订单表分别放到不同的数据库。

A

B

3

MySQL主从复制涉及三个线程:主库的Binlog Dump线程、从库的IO线程和SQL线程。

A

B

4

XA两阶段提交包括Prepare阶段(所有参与者准备提交并锁定资源)和Commit/Abort阶段(根据所有参与者准备结果决定提交或回滚)。

A

B

5

MHA由Manager节点和Node节点组成,Manager负责监控和切换决策,Node运行在每个MySQL服务器上负责具体切换操作。

A

B

6

GTID(全局事务ID)复制可以简化主从切换和故障恢复,因为每个事务都有唯一标识,无需手动指定Binlog位置。

A

B

单选题
7

MHA(Master High Availability)的主要作用是什么?

A

数据备份

B

MySQL主库故障时自动切换到从库,实现高可用

C

查询优化

D

索引管理

8

什么是分布式事务?

A

单个数据库中的事务

B

跨多个数据库或资源的事务,需要保证所有参与者的一致性

C

只涉及一张表的事务

D

自动提交的事务

9

什么是分库分表?

A

将一张表拆成多个小文件

B

将数据分散到多个数据库实例或多个表中,解决单库单表性能瓶颈

C

增加索引数量

D

减少表字段

10

主从复制延迟的主要原因是什么?如何缓解?

A

主库性能太高,应降低性能

B

从库单线程执行Relay Log,大事务导致延迟,可开启并行复制

C

网络太快导致延迟

D

只能增加从库数量

11

MySQL主从复制的基本原理是什么?

A

主库直接推送数据到从库

B

从库读取主库的Binlog并重放执行

C

主库和从库共享同一数据文件

D

定期同步数据文件

12

对于需要99.99%可用性、支持自动故障切换、且要求完整SQL功能的企业应用,应选择哪种MySQL高可用方案?

A

MySQL Cluster(NDB)

B

InnoDB Cluster(MySQL Router + Group Replication + MySQL Shell)

C

单机MySQL

D

手动主从切换

13

分库分表后面临的主要挑战是什么?

A

数据量增加

B

跨库JOIN、分布式事务、全局唯一ID、数据迁移等复杂问题

C

索引失效

D

存储空间不足

14

MySQL Cluster包含哪些类型的节点?

A

只有SQL节点

B

管理节点(MGM)、数据节点(NDB)、SQL节点(API)

C

只有数据节点

D

主节点和从节点

15

ProxySQL的主要作用是什么?

A

数据备份工具

B

MySQL中间件,提供读写分离、负载均衡、查询路由等功能

C

数据同步工具

D

监控工具

16

MySQL主从复制的主要作用是什么?

A

提高单机性能

B

实现数据备份、读写分离、负载均衡

C

减少存储空间

D

加快索引创建

17

分库分表的两种主要方式是什么?

A

水平拆分和垂直拆分

B

索引拆分和数据拆分

C

内存拆分和磁盘拆分

D

主键拆分和外键拆分

18

XA协议是什么?

A

MySQL内部协议

B

X/Open组织定义的分布式事务处理标准协议,实现两阶段提交

C

网络传输协议

D

数据加密协议

19

实现MySQL读写分离的常用方式是什么?

A

应用程序直接连接主库和从库

B

使用中间件(如ProxySQL)自动路由读写请求

C

只使用主库

D

只使用从库

20

MySQL Cluster(NDB Cluster)的主要特点是什么?

A

单机存储引擎

B

分布式、无共享架构的MySQL高可用解决方案,数据存储在内存中

C

只支持读操作

D

只能有一个节点

多选题
21

以下哪些是MySQL常用的高可用方案?

A

MHA(Master High Availability)

B

Orchestrator

C

MySQL Router + InnoDB Cluster

D

MMM(Multi-Master Manager)

E

主从手动切换

填空题
22

分库分表分为____________(按业务拆表到不同库)和____________(按数据行拆分到多表),水平分片策略包括____________、范围分片等,需解决跨库JOIN、分布式事务、全局ID等问题。

参考答案
1.正确 2.正确 3.正确 4.正确 5.正确 6.正确 7.B 8.B 9.B 10.B 11.B 12.B 13.B 14.B 15.B 16.B 17.A 18.B 19.B 20.B 21.A;B;C;D;E 22.垂直拆分;水平拆分;Hash分片
想在手机上练习这套专题?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一个专题 锁事务与并发控制
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码