服务结构集实例计数-1

kum*_*mar 2 azure-service-fabric

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

<Parameter Name="Web1_InstanceCount" Value="-1" />
Run Code Online (Sandbox Code Playgroud)

Die*_*des 5

在您的示例中,-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>
Run Code Online (Sandbox Code Playgroud)

如果您注意的话,则在开始时定义参数,并在底部在声明服务时使用由[]括起来的参数。

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

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

为什么有可用的有效节点?

  • 假设您有2种节点类型,FrontEnd和BackEnd。如果将放置约束添加到服务以仅在FrontEnd上运行(如示例中所示),则服务将在类型为“ FrontEnd”的所有节点上运行。
  • 另一点是,每当可用的有效节点数量(符合您的服务规则)时,实例数就会更改,例如,您按节点类型比例集扩展/缩小节点数。某些节点发生故障,或者某些规则发生了变化,例如,您基于节点标签创建了一条规则,而这些标签发生了变化。

您可以在这里找到更多信息


Pet*_*ons 1

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

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

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

我强烈建议阅读文档的这一部分

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

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