我在本地开发集群上运行 Service Fabric 应用程序,在我的 PC 上“模拟”了 5 个节点。
该应用程序有一个公共 API 无状态服务,实例计数设置为 -1。
我希望在 Service Fabric Explorer 中看到 5 个无状态服务实例,但我只看到 1 个。
该应用程序还有一个参与者服务,其分区计数设置为 10(由 Visual Studio 自动生成的配置)。
当应用程序部署到我的 PC 上的开发集群时,Service Fabric Explorer 中只能看到一个分区。在我模拟“大”负载并且我的 PC 的 CPU 和内存使用率在 90% 左右或以上之后,仍然只有一个演员服务分区。我创建了一个有状态服务,将分区计数设置为 5,以检查我的环境是否有问题,但它按预期运行。
这对于无状态服务是正常的还是我的配置有问题。此行为是否特定于开发集群,设置为避免端口冲突之类的事情。
演员服务怎么样。根据文档动态分区缩放是可能的,但是即使在高负载期间,actor服务的分区数量也不会增加。此外,Actor 文档中没有提到动态分区缩放。
提前致谢!
编辑:经过一些不同配置的测试后,我得到了它的工作。
ApplicaitonManifest.xml 中的原始配置:
<Parameters>
...
<Parameter Name="HttpAPI_InstanceCount" DefaultValue="-1" />
<Parameter Name="SystemStatusConsumerActorService_PartitionCount"
DefaultValue="10" />
...
</Parameters>
<DefaultServices>
<Service Name="HttpAPI">
<StatelessService ServiceTypeName="HttpAPIType"
InstanceCount="[HttpAPI_InstanceCount]">
<SingletonPartition />
</StatelessService>
</Service>
<Service Name="SystemStatusConsumerActorService"
GeneratedIdRef="faad4d24-04db-4e06-8a1d-22bc6255c7fe|Persisted">
<StatefulService ServiceTypeName="SystemStatusConsumerActorServiceType" TargetReplicaSetSize="SystemStatusConsumerActorService_TargetReplicaSetSize]" MinReplicaSetSize="[SystemStatusConsumerActorService_MinReplicaSetSize]">
<UniformInt64Partition
PartitionCount="[SystemStatusConsumerActorService_PartitionCount]"
LowKey="-9223372036854775808"
HighKey="9223372036854775807" />
</StatefulService>
</Service>
</DefaultServices>
有效的配置:
<Parameters>
...
<Parameter Name="HttpAPIInstanceCount" DefaultValue="-1" />
<Parameter Name="SystemStatusConsumerActorServicePartitionCount"
DefaultValue="10" />
...
</Parameters>
<DefaultServices>
<Service Name="HttpAPI">
<StatelessService ServiceTypeName="HttpAPIType"
InstanceCount="[HttpAPIInstanceCount]">
<SingletonPartition />
</StatelessService>
</Service>
<Service Name="SystemStatusConsumerActorService"
GeneratedIdRef="faad4d24-04db-4e06-8a1d-22bc6255c7fe|Persisted">
<StatefulService ServiceTypeName="SystemStatusConsumerActorServiceType" TargetReplicaSetSize="SystemStatusConsumerActorService_TargetReplicaSetSize]" MinReplicaSetSize="[SystemStatusConsumerActorService_MinReplicaSetSize]">
<UniformInt64Partition
PartitionCount="[SystemStatusConsumerActorServicePartitionCount]"
LowKey="-9223372036854775808"
HighKey="9223372036854775807" />
</StatefulService>
</Service>
</DefaultServices>
请注意,唯一的区别是参数名称:
HttpAPI_InstanceCount
变成
HttpAPIInstanceCount
SystemStatusConsumerActorService_PartitionCount
变成
SystemStatusConsumerActorServicePartitionCount