本页简要介绍了 Memorystore for Valkey 中的跨区域复制。
如需了解如何管理跨区域复制,请参阅创建和管理跨区域复制。
借助跨区域复制功能,您可以从主实例创建次要实例,以便在不同区域中读取实例中的数据。辅助实例还可在发生区域性服务中断时为灾难恢复场景提供冗余。
本页中的关键概念包括:
- 主实例:单个区域中的读写实例。
- 辅助实例:从主实例异步复制的只读实例。如需了解如何提升次要实例的角色和如何分离次要实例,请参阅如何管理跨区域复制中显示的分离和切换任务。
- 复制程序节点:主实例分片中的节点,会复制到次要实例中的从属节点。分片中的任何主节点或副本节点都可以充当复制程序的角色。
- 从属节点:次要实例中从主实例中的复制程序节点复制的节点。只有辅助实例中的主节点才能具有“Follower”角色。
- 分片数量和槽分配:主实例和辅助实例具有相同数量的分片和槽分配。
优势
在 Memorystore for Valkey 上进行跨区域复制的优势包括:
- 灾难恢复:如果主实例所在的区域不可用,您可以分离或切换到其他区域中的辅助实例,以处理读写请求。辅助实例会在不发出切换或分离命令的情况下处理读取请求。
- 地理位置分布式数据:地理位置分布式数据可将数据移至更靠近您的位置,从而缩短读取延迟时间。
- 针对读取流量的地理位置负载均衡:如果某个区域出现连接缓慢或过载的情况,您可以将流量路由到其他区域。
功能行为
本部分介绍了跨区域复制功能的重要行为。
- 扩缩实例容量:当您扩缩主实例的容量时,Memorystore for Valkey 会自动扩缩辅助实例,使其与主实例保持一致。
- 扩缩副本数量:您可以根据工作负载需求,独立扩缩主实例和辅助实例的副本数量。对副本数量的更新仅限于本地,不会传播到跨区域复制集合中的其他实例。
- 在可能发生服务中断期间执行切换:您可以执行切换以提升次要实例,即使主实例因服务中断而不可用也是如此。服务中断问题解决后,不可用的主实例会变为次要实例。
- 创建在线辅助实例:向主实例添加辅助实例时,主实例会保持在线状态。在 Memorystore for Valkey 创建辅助实例时,主实例会处理请求并复制数据。
- 创建次要实例:您最多可以有两个次要实例。它们可以位于同一区域,也可以位于不同区域。您无法将现有实例转换为次要实例。您只能将新实例添加为次要实例。
- 同步设置:Memorystore for Valkey 会自动在主实例和辅助实例之间同步大多数实例设置。如需详细了解这些设置,请参阅实例设置。
- 价格:Memorystore for Valkey 会针对 Memorystore for Valkey 为跨区域复制预配的任何次要实例向使用跨区域复制的客户收费。对于 Memorystore for Valkey 在辅助实例上部署的每个节点和副本,您都需要按与任何其他主实例相同的费率付费。此外,您还需要为在不同区域的实例之间传输数据支付网络费用。
- 执行维护更新:为确保与跨区域复制兼容,在创建辅助实例时,主实例可能会进行维护更新。如果主实例未运行所需的软件版本,则会发生此更新。在创建辅助实例时,更新过程可能会导致一些额外的延迟。如需了解详情,请参阅维护简介。
如何管理跨区域复制
跨区域复制涉及以下任务:
- 创建辅助实例:创建一个会持续从主实例复制数据的辅助实例。
- 查看次要实例:查看次要实例的相关信息,包括主实例的名称以及复制组中的其他次要实例的名称。
分离次要实例:将次要实例与其主实例分离,使其成为一个功能齐全的独立实例,支持读写操作。分离操作完成后,分离的实例不会从其之前关联的主实例复制数据。原主实例和新分离的实例(以前的辅助实例)都作为独立实例运行,彼此之间没有任何关系。
分离辅助实例主要有以下两种场景:
- 区域迁移:执行计划迁移过程,将 Memorystore for Valkey 资源从其主要区域迁移到另一个区域。
- 灾难恢复:如果主要区域中的资源不可用,则快速在次要区域中激活 Memorystore for Valkey 资源。如果辅助实例未完全与主实例同步,则可能会丢失部分数据。
切换实例:执行切换以反转主实例和辅助实例的角色。您可以出于以下原因执行切换:
- 测试灾难恢复设置
- 在实际灾难恢复场景中进行切换
- 迁移工作负载
完成切换后,Memorystore for Valkey 会反转复制方向。以前的辅助实例现在可以同时接受读写操作,而以前的主实例会切换为只读状态。
跨区域复制的架构示例
此图显示了 us-east1
区域中的主实例,以及 us-west1
和 asia-east1
区域中的次要实例。复制方向始终是从主实例到次要实例(在此示例中,从 us-east1
区域到其他区域)。
尽管此图显示所有区域中的副本数量相同,但借助跨区域复制,您可以根据自己的要求设置不同的副本数量。
实例设置
本部分介绍了使用跨区域复制的主实例和辅助实例所需、复制和替换的设置。其中还介绍了您在主实例上配置的设置以及您在本地配置的设置。
创建次要实例所需的参数
如需创建辅助实例,您必须为以下参数设置值:
- Google Cloud 项目:主实例所在的项目,也是您创建辅助实例的项目。
- 区域:您希望辅助实例所在的区域。
- Private Service Connect 配置:辅助实例的网络设置。
- 主实例:创建辅助实例时,您必须指明主实例。除了辅助实例之外,您可以将任何实例用作主实例。如果您没有主实例,请创建一个。
次要实例从主实例复制的设置
创建辅助实例时,该实例会从主实例复制以下设置:
替换默认设置
创建辅助实例时,您可以使用以下设置替换默认设置:
更新实例设置
更新 Memorystore for Valkey 实例的设置时,您只能更改主要实例上的某些设置。Memorystore for Valkey 会自动将这些更改同步到次要实例。
您可以独立更改主实例和辅助实例的其他设置。Memorystore for Valkey 仅在本地应用这些更改,不会将其与其他实例同步。
在主实例上配置设置
您必须更改主实例上的以下设置。Memorystore for Valkey 会自动将这些更改同步到辅助实例。
配置本地设置
您可以在本地配置这些设置:
切换主实例和辅助实例的最佳实践
当您将主实例和辅助实例的角色进行互换(执行切换)时,我们建议您按照本部分中的说明操作。这样,您的应用就可以跟踪写入操作,并将所有写入操作发送到相应的主实例。
- 使应用停止向主实例写入数据。
如果有多个辅助实例要提升为主实例,请确定要提升为主实例的辅助实例。以下因素有助于您确定要提升哪个次要实例:
- 应用与实例的距离。这可能会影响写入延迟时间。
- 数据方面与主实例最接近的辅助实例。
- 在设置方面与主实例最接近的辅助实例。
等待切换操作完成。
更新您的应用,以将所有写入发送到您在第 2 步中选择的新晋升实例。