无法报告 Actors 服务中指标的负载

Can't report load for the metrics in Actors Service

Service Fabric 中有一个很好的功能,它允许每个服务对象在运行时更新自己的负载。动态负载报告允许副本或实例在其生命周期内调整其 allocation/reported 指标负载。 以下是我如何在服务中执行此操作:

this.Partition.ReportLoad(new List<LoadMetric> { new LoadMetric("MemoryInMb", 1234)});

问题在于 Partition 是在 StatefulServiceBase 中声明的受保护 属性,因此它在 ActorService 中可用,但在 Actor 中不可用。我的意思是,我做不到 Actor.ActorService.Partition.ReportLoad(...)。我确实看到了一个解决方法,我可以在其中创建我的自定义 actor 服务 class 并使其成为 属性 public,但我想知道它是否有意义,是否有任何特殊原因不被能够报告 Actors 中的负载?

ActorService 确实派生自 StatefulServiceBase。你应该可以走了。

看到这个:https://docs.microsoft.com/en-us/dotnet/api/microsoft.servicefabric.actors.runtime.actorservice?redirectedfrom=MSDN#microsoft_servicefabric_actors_runtime_actorservice


编辑: 您有什么特定于一个 Actor 实例的负载指标?

演员的寿命通常是有限的。负载报告是一个周期性过程。这两者并没有真正结合好。是的,您可以使用 ActorReminders,但是当您拥有可以不受限制地执行相同操作的 ActorService 时,为什么还要使用它们呢?