【发布时间】:2016-06-15 20:35:30
【问题描述】:
我的 Azure Service Fabric 集群中运行着一个无状态的 ASP.NET Core (RC1) 服务。它有以下清单:
<ServiceManifest Name="MyServicePkg" Version="1.0.2" ...>
<ServiceTypes>
<StatelessServiceType ServiceTypeName="MyServiceType" />
</ServiceTypes>
...
</ServiceManifest>
我的集群配置了放置属性。我有 5 台“nodeType=Backend”的服务器和 3 台“nodeType=Frontend”的服务器。
我想升级我的服务并指定它只能放置在“后端”节点上。这是我更新的清单:
<ServiceManifest Name="MyServicePkg" Version="1.0.3" ...>
<ServiceTypes>
<StatelessServiceType ServiceTypeName="MyServiceType">
<PlacementConstraints>(nodeType==Backend)</PlacementConstraints>
</StatelessServiceType>
</ServiceTypes>
...
</ServiceManifest>
但是,如果我现在执行升级,我会收到以下错误:
Start-ServiceFabricApplicationUpgrade :默认服务描述 不得在升级过程中进行修改。修改默认服务: 面料:/MyApp/MyService
为什么不能通过升级来更改约束?
我是否必须删除并重新创建服务?这对我来说似乎非常有问题,因为它会导致有状态服务的停机和数据丢失。
【问题讨论】: