扩展时,Service Fabric单例服务是否会停机?

时间:2019-02-04 05:23:54

标签: azure azure-service-fabric

我们使用Service Fabric集群来部署无状态微服务。微服务之一被设计为单例。这意味着它被设计为仅部署在单个节点上。

但这是否意味着当我们扩大或缩小VM规模集(水平缩放)时,服务将减少?还是由Service Fabric群集负责?

1 个答案:

答案 0 :(得分:1)

关于服务结构中的服务,确实要记住两个主要概念,主要但不限于有状态服务。 分区副本

分区定义了用于将数据拆分为数据组的方法,它们defined为:

  • 远程分区(也称为UniformInt64Partition)。用于将数据按一定范围的整数值分割。
  • 命名分区。使用此模型的应用程序通常在一定范围内具有可以存储的数据。用作命名分区键的数据字段的一些常见示例是区域,邮政编码,客户组或其他业务边界。
  • 单个分区。当服务不需要任何其他路由时,通常使用单例分区。例如,默认情况下,无状态服务使用此分区方案。

当对状态服务使用 Singleton 时,它假定数据作为单个组进行管理,则不使用实际的数据分区。

副本定义了分区在群集中将具有的副本数,以防止在主副本失败时丢失数据。

总而言之,

如果使用Singleton分区,则副本数至少为3不会有问题。

这意味着,一旦更新一个NODE,该节点上托管的副本将被移至另一节点,如果该副本是主副本,则将其降级为辅助副本,将辅助副本升级为主要副本,然后降级的副本将关闭并复制到另一个节点上。

如果在升级过程中某个副本失败,则需要第三个副本,然后将第三个副本提升为主副本。