Multi-AZ DB Cluster
是具有两个可读数据库实例的RDS 的高可用性部署模式。 Multi-AZ DB CLuster
在同一区域的三个独立AZ中具有一个writer和两个reader。 与Multi-AZ DB Instance
相比,Multi-AZ DB Cluster
可提供高可用性、更高的读取工作负载容量以及更低的写入延迟。 此外,它的故障转移时间也更快。
下图显示了多可用区数据库集群的架构:
借助Multi-AZ DB Cluster
,RDS使用数据库引擎的复制功能将数据从writer实例复制到两个reader实例。 当对writer进行更改时,它将发送到每个reader。 提交更改需要至少一个reader的确认。
reader既充当自动故障转移目标,又提供读取功能以提高应用程序读取吞吐量。 如果写入器数据库实例发生中断,RDS 会故障转移到其中一个reader。
与在 EBS 卷之间使用同步复制的Multi-AZ DB Instance
不同,Multi-AZ DB Cluster
使用本地连接的 SSD 来存储事务日志,并使用数据库引擎的异步复制, 这会改善提交延迟。
此外,Multi-AZ DB Cluster
故障转移到reader的速度比Multi-AZ DB Instance
更快,通常在 35 秒内。
之前我们已经将rds-pg-labs的从库提升为一个独立的Multi-AZ DB Cluster
, 本节我们继续用这个集群来测试它的failover功能。
在RDS控制台上,点击Failover
:
Multi-AZ DB Cluster
的状态先变成failing over,注意原来writer节点在us-west-2b
:
failover完成后,writer节点在us-west-2c
: