复制功能概览
Bigtable 的复制功能可将您的数据复制到多个区域或同一区域中的多个可用区,让您能够提高数据的可用性和耐用性。此外,它还可将不同类型的请求路由到不同的集群,让您可以隔离工作负载。
本页面介绍了 Bigtable 复制功能的工作原理以及复制功能的一些常见使用场景。此外还介绍了 Bigtable 在启用复制功能的情况下采用的一致性模型,以及当一个集群故障切换到另一集群时所发生的情况。
- 如需查看可用以实现常见使用场景的设置示例,请参阅复制配置示例。
- 如需了解如何创建使用复制功能的实例,请参阅创建实例。
- 如需了解如何为现有实例启用复制功能,请参阅添加集群。
- 要了解与复制相关的成本,请参阅价格。
在阅读本页内容之前,您应先熟悉 Bigtable 概览。
复制功能的工作原理
如需在 Bigtable 实例中使用复制功能,请新建一个包含多个集群的实例,或向现有实例添加集群。
Bigtable 实例最多可以在 8 个 Bigtable 区域中具有集群,并且在每个区域中,该实例每个可用区只能包含一个集群。例如,如果您在 8 个区域中创建实例,每个区域有 3 个可用区,则您的实例最多可以有 24 个集群。
一个区域中的每个可用区只能包含一个集群。 通过将集群置于不同的可用区或区域中,即使某个 Google Cloud 可用区或区域变得不可用,您也可以访问实例的数据。
在您创建包含多个集群的实例时,Bigtable 会立即开始在各集群之间同步数据,从而在有实例集群的每个可用区中分别创建一个独立的数据副本。同样,在您向现有实例添加新集群时,Bigtable 会将现有数据从原始集群的可用区复制到新集群的可用区,然后在两个可用区之间同步对数据所进行的更改。
Bigtable 会复制对数据进行的所有更改,包括以下所有类型的更改:
- 对现有表中数据的更新
- 新增和删除表
- 添加和移除列族
- 对列族的垃圾回收政策的更改
复制操作会有一些延迟,但集群之间最终会实现一致。
Bigtable 会将实例中的每个集群视为一个主集群,因此您可以在每个集群中执行读写操作。您还可以对实例进行设置,以便将来自不同类型应用的请求路由到不同的集群。
在将集群添加到实例之前,您应该先了解更改复制表的垃圾回收政策时所适用的限制。
性能
使用复制功能会产生性能影响,当您创建复制的实例或通过向单集群实例添加集群来启用复制功能时,应酌情考虑这些性能影响。例如,相较于位于同一区域的复制集群,位于不同区域的复制集群的复制延迟时间通常更长。此外,拥有多个集群的实例中的集群通常需要更多节点来处理额外的复制处理工作。如需了解详情,请参阅了解性能。
使用场景
本部分介绍了 Bigtable 复制功能的一些常见使用场景。要了解每个使用场景的最佳配置设置以及关于其他使用场景的实现提示,请参阅复制功能设置示例。
隔离生产应用与批量读取
如果您使用同一个集群运行一个执行大量大型读取操作的批量分析作业和一个执行混合读写操作的应用,那么大型批量作业会拖慢该应用的用户体验到的速度。通过复制,您可以通过设置单集群路由的应用配置文件,将批量分析作业流量和应用流量路由到不同的集群,确保批量作业不会影响到应用的用户。 详细了解如何实现此使用场景。
提高可用性
如果实例只有一个集群,那么数据的耐用性和可用性将只依赖于该集群所在的可用区。复制功能可在多个