【发布时间】:2018-12-04 02:33:01
【问题描述】:
这有点描述性,所以请多多包涵。 :)
在我尝试构建的应用程序中,产品具有不同的功能。用户可以选择加入功能 A、B、D 但不是 C。我构建这个的方式是,每个不同的功能都是一个服务(无状态,我正在考虑将数据存储在 Azure SQL数据库并从每个服务公开 REST API)。将所有服务捆绑在一起是一个 ApplicationType。对于创建的每个客户租户(将其视为一组用户的共享帐户),我正在考虑使用 TenantManagementService 创建一个已注册 ApplicationType 的新具体实例,并在 FabricClient 实例上调用 client.ApplicationManager.CreateApplicationAsync() 以便我可以在我的节点上为该租户运行一个专用的应用程序实例。但是,正如我所提到的,租户可以选择仅选择映射到服务子集的特定功能。如果租户只选择了我的应用程序的服务 A,那么与特性 B、C、D 对应的其余服务实例不应在节点上空闲运行。
我想为每个服务创建参与者,但我正在创建的服务是无状态的,我希望它们的多个实例在多个节点上主动运行以实现负载平衡,而不是让有状态服务的空闲副本。
类似于我对应用程序类型所做的事情,即在新租户注册时生成应用程序类型,我可以在租户想要选择加入/退出产品功能时生成/删除服务吗?
这是我尝试过的:
在打包我的应用程序时,我尝试为服务设置InstanceCount 0。在我的ApplicationParameters XML 文件中:
<Parameters>
<Parameter Name="FeatureAService_InstanceCount" Value="0" />
<Parameter Name="FeatureBService_InstanceCount" Value="0" />
</Parameters>
但是,Service Fabric Explorer 在从此类应用程序类型中实例化应用程序时会出现问题。错误是这样的:
但另一方面,当服务部署在结构上时,我可以选择专门删除它,所以这种情况应该是有效的。
欢迎提出任何建议!
编辑:我的要求类似于 anderso 在此处提到的方法-https://stackoverflow.com/a/35248349/1842699,但是,我特别要解决的问题是上传创建一个应用程序实例,该实例具有一个或多个具有零实例的打包服务数一数!
【问题讨论】:
-
您是否看到这篇关于动态部署的文章和示例? blogs.msdn.microsoft.com/premier_developer/2017/08/15/…github.com/dkj0/SFJobCreator
标签: azure azure-service-fabric service-fabric-stateless service-fabric-actor