我看到Web实例计数设置为-1。 -1是什么意思?
<Parameter Name="Web1_InstanceCount" Value="-1" />
答案 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)的实例数将动态扩展,其中 有效节点的数量 即可。请注意“有效节点可用”而不是“所有节点”
为什么有效节点可用?
您可以找到更多信息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