这有点描述性,所以请耐心等待。 :)
在我尝试构建的应用程序中,产品具有独特的功能。用户可以选择选择功能 A、B、D,但不能选择 C。我构建此功能的方式是,每个不同的功能都是一个服务(无状态,我正在考虑将数据存储在 Azure SQL 中)数据库并从每个服务公开 REST API)。将所有服务捆绑在一起的是一个应用程序类型。对于创建的每个客户租户(将其视为一组用户的共享帐户),我正在考虑使用 TenantManagementService 创建注册的 ApplicationType 的新具体实例并调用client.ApplicationManager.CreateApplicationAsync()
on a FabricClient
实例,以便我可以在我的节点上为该租户运行一个专用的应用程序实例。但是,正如我所提到的,租户可以选择仅选择映射到服务子集的特定功能。如果租户仅选择我的应用程序的服务 A,则与功能 B、C、D 对应的其余服务实例不应在节点上空闲运行。
我想过为每个服务创建参与者,但我创建的服务是无状态的,我希望它们的多个实例在多个节点上主动运行以实现负载平衡,而不是拥有有状态服务的空闲副本。
与我对应用程序类型所做的操作类似,即在新租户注册时生成应用程序类型,当租户想要选择加入/退出产品功能时,我可以生成/删除服务吗?
这是我尝试过的:
我尝试设置InstanceCount
0 用于打包我的应用程序时的服务。在我的ApplicationParameters
XML 文件:
<Parameters>
<Parameter Name="FeatureAService_InstanceCount" Value="0" />
<Parameter Name="FeatureBService_InstanceCount" Value="0" />
</Parameters>
However, Service Fabric Explorer cribs when instantiating the application out of such application type. The error is this:
But on the other hand, when a service is deployed on the fabric, it gives me an option to delete it specifically, so this scenario should be valid.
欢迎任何建议!
编辑:我的要求类似于 anderso 在这里提到的方法 -https://stackoverflow.com/a/35248349/1842699 https://stackoverflow.com/a/35248349/1842699,但是,我特别要解决的问题是上传创建一个应用程序实例,其中一个或多个打包服务的实例数为零!