Service Fabric设置实例计数-1

时间:2018-05-01 07:29:27

标签: azure-service-fabric

我看到Web实例计数设置为-1。 -1是什么意思?

<Parameter Name="Web1_InstanceCount" Value="-1" />

3 个答案:

答案 0 :(得分:2)

在你的例子中,-1表示只是一个参数值,在上下文之外它并不意味着什么。通过变量的名称,它是一个可能用于ApplicationManifest.xml上的服务声明的参数。

你可能会有这样的事情:

<?xml version="1.0" encoding="utf-8"?>
<ApplicationManifest ApplicationTypeName="MyAppTypeName" ApplicationTypeVersion="1.0.0" xmlns=...>
  <Parameters>
    <Parameter Name="Web1_InstanceCount" Value="-1" />
    <Parameter Name="FEPlacementConstraints" Value="NodeTypeName==FrontEnd" />
  </Parameters>
  <ServiceManifestImport>
    <ServiceManifestRef ServiceManifestName="MyServicePkg" ServiceManifestVersion="1.0.0" />
    <ConfigOverrides />
  </ServiceManifestImport>
  <DefaultServices>
    <Service Name="Web1">
      <StatelessService ServiceTypeName="MyServiceType" InstanceCount="[Web1_InstanceCount]">
        <SingletonPartition />
        <PlacementConstraints>[FEPlacementConstraints]</PlacementConstraints>
      </StatelessService>
    </Service>
  </DefaultServices>
</ApplicationManifest>

如果你注意,在开始定义参数时,在底部你在声明服务时使用[]括起来。

现在,关于值-1的含义。

-1是动态实例计数,这意味着您的命名服务(Web1)的实例数将动态扩展,其中 有效节点的数量 即可。请注意“有效节点可用”而不是“所有节点”

为什么有效节点可用?

  • 假设您有2种节点类型,FrontEnd&amp;后端。如果您向服务添加放置约束以仅在FrontEnd上运行(如示例中所示),则您的服务将在类型为“FrontEnd”的所有节点上运行。
  • 另一点是,每次可用的有效节点数(符合您的服务规则的节点数)时,实例数都会发生变化,例如,您在节点类型比例集中放大/缩小节点数。某些节点出现故障或某些规则发生更改,例如,您根据节点标签创建规则并更改这些标签。

您可以找到更多信息here

答案 1 :(得分:0)

Service Fabric群集由一个或多个节点组成(出于测试/开发目的,它可以具有1或3个节点,生产环境通常具有≥5个节点)。部署Web1服务时,它将在x个节点上运行,其中x由Web1_InstanceCount的值确定。

当to value设置为-1时,服务将部署到所有节点。

流量将以循环方式路由到在节点上运行的Web1的其中一个实例。

我强烈建议您阅读this part of the docs

  

通过创建或删除无状态服务实例进行扩展

     

在Service Fabric中扩展的最简单方法之一是使用无状态服务。创建无状态服务时,您有机会定义InstanceCount。 InstanceCount定义服务启动时创建的服务代码的运行副本数。例如,假设群集中有100个节点。我们还假设一个服务是在InstanceCount为10的情况下创建的。在运行时期间,这10个正在运行的代码副本都可能变得太忙(或者可能不够忙)。扩展该工作负载的一种方法是更改​​实例数。例如,某些监视或管理代码可以将现有实例数更改为50或5,具体取决于工作负载是否需要根据负载进行扩展或缩小。

答案 2 :(得分:0)

其均值-1是服务实例计数的默认值。因此Service Fabric将在所有节点上运行它。因此,如果您有5个节点,那么SF会将该服务部署到5个节点。然后,您可以使用Load Balancer或Reverse proxy将流量定向到每个节点

此处有更多信息 https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-concepts-scalability