Azure service fabric Can';t报告Actors服务中度量的负载

Azure service fabric Can';t报告Actors服务中度量的负载,azure-service-fabric,Azure Service Fabric,服务结构中有一个很好的特性,允许每个服务对象在运行时更新自己的负载。动态负载报告允许副本或实例在其生命周期内调整其分配/报告的度量负载。 以下是我如何在服务中做到这一点: this.Partition.ReportLoad(new List<LoadMetric> { new LoadMetric("MemoryInMb", 1234)}); this.Partition.ReportLoad(新列表{newloadmetric(“MemoryInMb”,1234)}); 问题是

服务结构中有一个很好的特性,允许每个服务对象在运行时更新自己的负载。动态负载报告允许副本或实例在其生命周期内调整其分配/报告的度量负载。 以下是我如何在服务中做到这一点:

this.Partition.ReportLoad(new List<LoadMetric> { new LoadMetric("MemoryInMb", 1234)});
this.Partition.ReportLoad(新列表{newloadmetric(“MemoryInMb”,1234)});

问题是分区是在StatefulServiceBase中声明的受保护属性,因此它在ActorService中可用,但在Actor中不可用。我的意思是,我不能做Actor.ActorService.Partition.ReportLoad(…)。我确实看到了一种可以创建自定义actor服务类并将此属性公开的解决方法,但我想知道这是否有意义,是否有任何特殊原因无法在Actors中报告负载?

ActorService确实源自StatefulServiceBase。你该走了

见此:


编辑: 您有哪些特定于一个参与者实例的负载度量


演员的寿命通常是有限的。负载报告是一个周期性的过程。这两者结合得不太好。是的,您可以使用
ActorReminders
,但是当您有一个
ActorService
可以做同样的事情而不受限制时,为什么要使用它们呢

抱歉搞混了,我已经编辑了这个问题。是的,我可以从ActorService报告负载,但不能从Actor本身报告负载,这仅仅是因为Actor“使用”ActorService,但不是从它派生的。我需要根据常规计划在集群中运行一些任务。这就是我对演员和提醒如此感兴趣的原因。至于指标,我想利用它们让结构知道参与者可能会启动一些繁重的过程,因此即使它们本身是轻量级的,它们产生的工作也不会太多。因此,在我病态的想法中,使用Actors报告度量将允许Fabric更好地平衡它们。您可以创建一个委托或接口来封装
ActorService
的ReportLoad方法,并将其传递给Actor的Actor。是的,委托和接口都是访问分区属性的好方法。问题是,有人知道这对面料有什么影响吗?我的意思是,我能改变布料这样分配演员的方式吗?或者它完全没有价值,我应该忘记它?如果在分区级别报告负载,则Actor实例通过其ActorId绑定到分区。所以你不能用这种方式影响演员的分布。