能否添加或删除 Service Fabric 有状态服务命名分区

问题描述

文档中提到,在服务部署后,我们无法更改服务结构有状态服务的分区计数。如果使用命名分区,情况是否类似。我们能否在有状态服务的生命周期内向其添加删除新的命名分区,是否有副作用?

解决方法

作为一般规则,不能在创建服务后修改分区,无论您如何处理它(例如 Int64、Named 或 Singleton)。该定义在您的 ApplicationManifest.xml 中指明,不应更改。

也就是说,如果您在最初设计解决方案时错误地估计了分区数,则没有什么特别的理由不能简单地使用新实现的分区数创建服务的 v2,并在其中引入逻辑或创建一个 (可能是单例)无状态迁移服务,将您的数据从一项服务移动到另一项服务,在您认为合适的情况下在分区之间映射数据。

迁移后,您可以在任一服务中保存状态备份(以防万一),更新解决方案中的引用以指向新服务并删除旧服务。

它不像某些提供的迁移经验那么干净,但它确实完成了工作。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...