gpt4 book ai didi

azure - 在 Service Fabric 应用程序中动态创建服务

转载 作者:行者123 更新时间:2023-12-01 22:54:38 25 4
gpt4 key购买 nike

这有点描述性,所以请耐心等待。 :)

在我尝试构建的应用程序中,产品具有独特的功能。用户可以选择选择功能 A、B、D,但不能选择 C。我构建此功能的方式是,每个不同的功能都是一个服务(无状态,我正在考虑将数据存储在 Azure SQL 中)数据库并从每个服务公开 REST API)。将所有服务捆绑在一起的是一个应用程序类型。对于创建的每个客户租户(将其视为一组用户的共享帐户),我正在考虑使用 TenantManagementService 创建注册的 ApplicationType 的新具体实例并调用 client.ApplicationManager.CreateApplicationAsync()FabricClient上实例,以便我可以在我的节点上为该租户运行一个专用的应用程序实例。但是,正如我所提到的,租户可以选择仅选择映射到服务子集的特定功能。如果租户只选择我的应用程序的服务 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 在实例化此类应用程序类型的应用程序时会崩溃。错误是这样的: zero service instance count error

但另一方面,当服务部署在结构上时,它给了我一个选项来专门删除它,所以这个场景应该是有效的。 enter image description here

欢迎任何建议!

编辑:我的要求类似于 anderso 在这里提到的方法 - https://stackoverflow.com/a/35248349/1842699 ,但是,我特别要解决的问题是上传创建一个应用程序实例,其中包含一个或多个实例数为零的打包服务!

最佳答案

@uplnCloud

我希望我理解一切正确。

您的情况如下:

  • 每个客户都应拥有单独的应用程序(从同一个 ApplicationType 创建)。
  • 每个客户只能拥有服务子集(在 ApplicationType 中定义)。

如果我猜对了,那么这是开箱即用的支持。

首先,您应该删除 <DefaultServices />来自 ApplicationManifest.xml 的部分。这将指示 Service Fabric 不要使用应用程序自动创建服务。

现在算法如下:

  1. 使用 FabricClient.ApplicationManager.CreateApplicationAsync() 创建应用程序
  2. 对于每个必需的功能,使用 FabricClient.ServiceManager.CreateServiceAsync() 创建一个新的相应服务(需要指定新建Application的Application名称)

另请注意 CreateServiceAsync()接受 ServiceDescriptor您可以配置所有与服务相关的参数 - 从分区架构开始到实例计数结束。

关于azure - 在 Service Fabric 应用程序中动态创建服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51024779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com