【问题标题】:Why do we need Reliable Actors reentrancy?为什么我们需要 Reliable Actors 重入?
【发布时间】:2016-07-20 01:42:15
【问题描述】:

我不明白为什么我们需要重入。据我了解,演员之间的通话并不是一个好习惯。在this 文章中的示例中,我们甚至有三个演员互相呼唤。

  • 是否有任何真实的例子来展示可重入的优势以及它必须如何使用以及用于什么目的?

【问题讨论】:

  • 我很想知道你在哪里读到的东西告诉你“从演员到演员的电话不是一个好习惯”。事实并非如此。在许多模式中,不同的参与者被设计为紧密合作以实现目标。
  • @DrewMarsh 你可以看到一张演员在演员介绍一开始就使用技术的照片here,并且没有演员对演员。此外,如果您查看this 文章,其中描述了在演员身上实现社交网络,您会发现如果一个演员打电话给另一个演员,那么有些人将在一段时间内变得无法访问。
  • @DrewMarsh,因为它是一个社交网络,我们希望演员能够以低延迟可用和可访问,因为可能会有一个非常受欢迎的用户,其演员的方法会被非常频繁地调用,所以很长时间延迟可能会使该用户“瘫痪”。是的,我看到了计算和聚合的例子。可能我真的不应该认为演员与演员之间的互动是一种不好的做法。

标签: azure-service-fabric


【解决方案1】:

当请求是同一参与者调用链的一部分时,它允许参与者一次处理多个请求。 Actor 是单线程的,这意味着一个 Actor 一次只能处理一个请求。如果没有重入,A -> B -> C -> A 会死锁。只要你按照单线程规则玩,演员对演员的调用就完全没问题了。

【讨论】:

  • 我明白这一点,但是当你需要从 C 演员中调用 A 演员时,有没有真实的例子?有生活中的例子吗?
猜你喜欢
  • 2020-10-05
  • 2019-06-09
  • 2013-12-17
  • 2011-12-12
  • 1970-01-01
  • 1970-01-01
  • 2014-06-18
  • 2017-02-26
  • 2011-04-03
相关资源
最近更新 更多