我们使用Service Fabric集群来部署无状态微服务。微服务之一被设计为单例。这意味着它被设计为仅部署在单个节点上。
但这是否意味着当我们扩大或缩小VM规模集(水平缩放)时,服务将减少?还是由Service Fabric群集负责?
答案 0 :(得分:1)
关于服务结构中的服务,确实要记住两个主要概念,主要但不限于有状态服务。 分区和副本。
分区定义了用于将数据拆分为数据组的方法,它们defined为:
当对状态服务使用 Singleton 时,它假定数据作为单个组进行管理,则不使用实际的数据分区。
副本定义了分区在群集中将具有的副本数,以防止在主副本失败时丢失数据。
总而言之,
如果使用Singleton分区,则副本数至少为3不会有问题。
这意味着,一旦更新一个NODE,该节点上托管的副本将被移至另一节点,如果该副本是主副本,则将其降级为辅助副本,将辅助副本升级为主要副本,然后降级的副本将关闭并复制到另一个节点上。
如果在升级过程中某个副本失败,则需要第三个副本,然后将第三个副本提升为主副本。