在多可用区部署的集群实例中,您可以在主可用区内额外增加一个或多个节点,从而避免在主节点故障切换时,因切换到备可用区而产生的业务访问时延增加的问题。
背景信息
默认情况下,多可用区部署表示将集群实例中每分片的主备节点分别部署在同一地域内的不同可用区中(电力和网络互相独立的物理区域),这为实例提供了较高的容灾能力。
当某分片的主节点出现故障时,实例会自动触发故障切换,降低故障带来的影响。而客户端通常也部署在主可用区,在未发生实例故障切换时,客户端与集群实例的主节点处于同可用区,此时的访问时延是最低、最健康的。以3分片集群架构为例,如下图所示:
当某分片发生主节点故障切换时,高可用系统(HA)会把分片主节点切换到位于备可用区的备节点上,此时客户端与实例为跨可用区(机房)访问,这会造成访问时延明显增加。
跨可用区访问的时延要远高于同可用区访问,关于阿里云各可用区间访问的平均时延请参见云网络互访性能。
由于云数据库 Tair(兼容 Redis)为高性能、低延迟的内存数据库,如果存在较高的网络延迟,这将直接影响到整体业务请求的响应时间。因此,本方案推荐您在集群实例的主可用区额外增加一个备节点,该方案兼顾了高性能稳定性和高容灾能力。
当主节点发生故障切换时,实例会优先在同可用区内切换,切换后主节点仍在主可用区,不会造成访问时延增加。
若主可用区发生可用区级别的故障,实例会进行跨可用区切换,提供较高的容灾能力。
方案介绍
云数据库 Tair(兼容 Redis)支持为集群实例的分片自定义2~5个节点。
当节点数为2时,默认为主、备可用区各部署一个节点;
当节点数为3时,默认在主可用区部署2个节点、备可用区部署1个节点;
当节点数为4~5时,您可以自行分配剩余节点部署在主可用区或备可用区。
本示例以3分片、3副本节点集群架构(主可用区2节点、备可用区1节点)为例进行介绍,如下图所示:
若此时某分片发生主节点故障切换,高可用系统(HA)会优先把分片主节点切换到位于主可用区的备节点上,此时客户端与实例仍为同可用区访问,不会造成访问时延增加,如下图所示:
如何启用本功能
当实例满足下述条件时,本功能将自动启用,无需您手动干预。
实例的部署模式为云原生。
实例为双(多)可用区。
实例的架构类型为启用集群。
实例主可用区的节点大于等于2(总节点数大于等3)。
操作指南
若您未创建实例,您仅需创建满足上述条件的实例即可,具体操作请参见创建实例。
其中,实例主可用区的节点大于等于2的配置如下图所示:
若您已创建云原生、多可用区的集群架构实例,您可以在实例详情页的节点管理页面中,单击修改,增加主可用区的节点数为大于等于2。
若您已创建了经典版部署模式的实例,您可以创建一个符合上述条件的新实例,并通过DTS将数据同步到新实例中,具体操作请参见实例间的单向数据同步。