我想知道在Service Fabric集群中实现可靠状态分区的最终(即延迟)复制的最佳做法是什么?
我想要这样的事情:
上图说明了一个服务结构集群,其中一些节点位于一个大陆上,另一些节点位于另一个大陆上。
标有 P 的节点是某些可靠状态的主要副本。 R 1 和 R 2 是该状态的辅助副本。 R 3 .. R 5 也是该状态的副本,但更像是辅助副词。
两个子集群之间的复制状态会很慢(它们相距很远)。
在这种情况下,大陆Y上主要是只读客户端,而这些客户端无需查看“实时”更新。只要该子集群中的所有(或至少大多数)副本具有一致的状态,滞后就不是问题。
我认为我想要实现的目标可归纳为以下几点:
我希望子集群Y中的副本成为某种第二类副本。不应允许他们成为主要人员,他们应该被允许落后。
给定子群集中给定状态的所有(或大多数)副本应该是一致的。
我希望复制流量在单个路径上跨越这两个子群集。我不希望相同复制状态的流量多次跨越大陆(除非必要)。也许是通过在子集群Y上使用类似“主延迟副本”的东西将复制状态传播到该子集群中的其他副本?
注意:对于其他一些可靠的状态分区,它可能也是相反的方式。该子集群Y保持主要,并且该子集群X是“延迟”。
Service Fabric框架中是否有一些支持?或者有最佳实践吗?或者,这种情况可能完全没有了?
答案 0 :(得分:1)
目前还没有办法将副本指定为最终复制的“第二类”,但它也不是完全无法实现的。您所描述的内容对于地理跨度集群完全有效。目前,可以设置一个地理跨度集群,其中副本集跨越多个区域,但每个区域中的副本被平等对待。