最终跨洲复制
Eventual replication cross continents
我想知道在 Service Fabric 集群中实现可靠状态分区的最终(即延迟)复制的最佳做法是什么?
我想要这样的东西:
上图是为了说明一个服务结构集群,其中一些节点位于一个大陆,而另一些节点位于另一个大陆。
标有P的节点是某个可靠状态的主副本。 R1 和 R2 是次要副本状态。 R3..R5 也是副本那种状态,但更像是二级二级。
两个子集群之间复制状态会很慢(它们彼此相距较远)。
在这种情况下,Y 大陆上将主要有只读客户端,这些客户端不需要看到 "realtime" 更新。落后不是问题,只要该子集群中的所有(或至少大多数)副本具有一致的状态。
我想我想达到的目标可以概括为以下几点:
我希望子集群 Y 中的副本是某种 second class 副本。不应该让他们成为主要的,应该让他们落后。
给定子集群中给定状态的所有(或大多数)副本应该是一致的。
我希望复制流量在一条路径上穿过这两个子集群。我不希望同一复制状态的流量多次穿越大陆(除非必要)。也许通过在子集群 Y 上使用类似 "primary deferred replica" 的东西将复制状态传播到该子集群中的其他副本?
注意:对于其他一些可靠的状态分区,还不如反过来。该子集群 Y 拥有主集群,而该子集群 X 是 "deferred".
Service Fabric 框架对此提供一些支持吗?或者是否有可用的最佳实践?或者,也许这种情况完全偏离了道路?
目前还没有一种方法可以将副本指定为 "second class" 以进行最终复制,但它也并非完全无法实现。您所描述的内容对于地理跨度集群是完全有效的。目前,可以设置一个地理跨度集群,其中副本集跨越多个区域,但每个区域中的副本都被平等对待。
我想知道在 Service Fabric 集群中实现可靠状态分区的最终(即延迟)复制的最佳做法是什么?
我想要这样的东西:
上图是为了说明一个服务结构集群,其中一些节点位于一个大陆,而另一些节点位于另一个大陆。
标有P的节点是某个可靠状态的主副本。 R1 和 R2 是次要副本状态。 R3..R5 也是副本那种状态,但更像是二级二级。
两个子集群之间复制状态会很慢(它们彼此相距较远)。
在这种情况下,Y 大陆上将主要有只读客户端,这些客户端不需要看到 "realtime" 更新。落后不是问题,只要该子集群中的所有(或至少大多数)副本具有一致的状态。
我想我想达到的目标可以概括为以下几点:
我希望子集群 Y 中的副本是某种 second class 副本。不应该让他们成为主要的,应该让他们落后。
给定子集群中给定状态的所有(或大多数)副本应该是一致的。
我希望复制流量在一条路径上穿过这两个子集群。我不希望同一复制状态的流量多次穿越大陆(除非必要)。也许通过在子集群 Y 上使用类似 "primary deferred replica" 的东西将复制状态传播到该子集群中的其他副本?
注意:对于其他一些可靠的状态分区,还不如反过来。该子集群 Y 拥有主集群,而该子集群 X 是 "deferred".
Service Fabric 框架对此提供一些支持吗?或者是否有可用的最佳实践?或者,也许这种情况完全偏离了道路?
目前还没有一种方法可以将副本指定为 "second class" 以进行最终复制,但它也并非完全无法实现。您所描述的内容对于地理跨度集群是完全有效的。目前,可以设置一个地理跨度集群,其中副本集跨越多个区域,但每个区域中的副本都被平等对待。