Service Fabric - 每个服务实例的动态资源管理

问题描述 投票:0回答:1

TL; DR:当我们在运行时创建某个ServiceType的新实例时,有没有办法为ServicePackageResourceGovernancePolicy和/或ResourceGovernancePolicy动态设置参数或资源策略?

我们有一个用例来为每个服务实例(不是类型)提供动态资源管理。

基本上,我们有一个服务类型:VotingDataType。

所以你在ApplicationManifest中描述资源政府,taken from the docs这里是一个例子:

<ApplicationManifest>
   ... 
   <ServiceManifestImport>
      <ServiceManifestRef ServiceManifestName="VotingDataPkg" ServiceManifestVersion="1.0.0" />
      ...  
      <!-- Set resource governance at the service package level. -->
      <ServicePackageResourceGovernancePolicy CpuCores="[CpuCores]" MemoryInMB="[Memory]"/>

      <!-- Set resource governance at the code package level. -->
      <ResourceGovernancePolicy CodePackageRef="Code" CpuPercent="10" MemoryInMB="[Memory]" BlockIOWeight="[BlockIOWeight]" 
                                MaximumIOBandwidth="[MaximumIOBandwidth]" MaximumIOps="[MaximumIOps]" MemoryReservationInMB="[MemoryReservationInMB]" 
                                MemorySwapInMB="[MemorySwapInMB]"/>

    </Policies>
  </ServiceManifestImport>
  ...
</ApplicationManifest

现在,对于每个客户,我的自定义放置服务将实例化VotingDataType的新实例。但是,通过我们在即将实例化一个新实例之前得到的一些元数据,我们决定是否需要一个更大的实例开始。因此,我们需要20%的CPU限制,而不是10%的CPU限制。

然后,我们的放置服务将使用以下方法创建该VotingDataType服务的新实例。 fabricClient.ServiceManager.CreateServiceAsync(...)。但是,我们无法自定义ResourceGovernancePolicy的参数。

当我们在运行时创建某个ServiceType的新实例时,有没有办法动态设置ServicePackageResourceGovernancePolicy和/或ResourceGovernancePolicy的参数或资源策略?

c# azure azure-service-fabric service-fabric-stateless
1个回答
1
投票

应用程序参数在应用程序级别定义,因此这些值对指定应用程序内的所有服务都有效。

在您的情况下,如果每个租户有一个命名的应用程序(实例),即使它们是相同的AppType,也是合适的。这样,您可以部署一次并使用不同的配置或版本创建多个服务。

每个租户一个应用程序也更好,因为您可以单独更新它们,因此每个租户可以决定何时应用更新。

即:

ApplicationTypes    
  ApplicationType  | Version
  ----------------------------
  SalesAppType       1.0
  SalesAppType       1.1

Applications (Named Applications)
  Application   | ApplicationType  | Version
  -------------------------------------------
  Ten1-SalesApp   SalesAppType       1.0
  Ten2-SalesApp   SalesAppType       1.0
  Ten3-SalesApp   SalesAppType       1.1
© www.soinside.com 2019 - 2024. All rights reserved.