azure - 诊断 Azure 有状态参与者

标签 azure actor azure-service-fabric stateful

我仍在努力理清思路 Azure Service Fabric Stateful Actors 。因此,我的(当前)问题最好放入这样的示例中:

  • 我有一个帮助台系统,其中每张票证都是一个有状态的参与者。参与者知道它所处的状态(已发布、已处理、已拒绝……),可以访问关联的数据等等。
  • 我发现我犯了一个错误,这 50,000 张票中有一堆处于错误状态。所以,我需要
    • 修复代码
    • 发布解决方案
    • 修复这 50,000 个参与者的子集的数据内容。

现在,我如何查询这些 Actor 的状态,例如“给我每个处于“拒绝”状态且属于名称以德语 ümlaut 开头的用户的 Actor ”?然后我如何修补这些参与者的状态数据?

我真的必须为每个 Actor 添加一个查询方法并唤醒每个 Actor 吗?或者有没有办法查询位于它们之上的参与者之外的那些状态字典?

最佳答案

简短的回答是肯定的,在这种情况下,你必须唤醒每个 Actor (最终)。

如果你已经处于这种状态,我认为 JoshL 的建议是有道理的。

为了避免这种情况,您可以在有状态服务中保留索引字典,保存您想要查询的信息,例如参与者 ID 和状态(发布、处理等)。然后,您只需唤醒那些相关的 Actor 即可。

您可以采取两种方法:

  • 让有状态服务引导信息流 - 负责更新索引字典并告诉参与者要做什么(例如更改状态)。
  • 让参与者负责通知有状态服务进行状态更新(例如可以通过提醒定期完成)。

关于azure - 诊断 Azure 有状态参与者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36553041/

相关文章:

c# - ServiceBusTrigger 中的连接是什么?

database - 使用 Azure 数据库迁移服务时的应用程序 ID 问题

java - Akka 是否有一个 ExecutorCompletionService 等效项,其中 Futures 按其完成时间排队?

scala - 如何在 Scala 中为具有构造函数参数的 Actor 创建 TestActorRef?

c# - 在多个 Cereal 之间分配繁重的工作(Microsoft Orleans)

multithreading - 在 Azure Service Fabric actor 内启动线程?

c# - 用于将 WCF 服务发布到 Azure 的 web.config 更改

java - Azure - 以编程方式使用 ssl 公钥创建虚拟机

azure-service-fabric - Service Fabric 应用程序之间的通信

azure - 在 Azure Service Fabric 中实现数据库故障转移