当前位置: 首页 > 知识库问答 >
问题:

Akka集群--参与者是否能够活过创建它们的节点?

秦俊友
2023-03-14

我希望能够从集群的一个Akka节点创建一个actor,这样actor就可以生存,而不管创建它的节点是否正在运行。

这是我试图处理的场景:

  1. 节点A启动。
  2. 节点B启动。
  3. 节点A和B形成群集。
  4. 节点A创建FooActor。
  5. 节点A终止。
  6. 节点B仍然能够搜索并找到节点A创建的FooActor
  7. 节点B会杀死fooactor。

此时,当节点A终止时,它创建的参与者将丢失。

你能告诉我这是否可能使一个参与者比创建它的节点/成员活得更久。

谢谢.

共有1个答案

刘玉石
2023-03-14

如果您想要的只是您的actor的寿命延长到节点终止,那么对您来说,最好的选择可能是不关心该actor在集群中的物理位置,在这种情况下,您可以使用两种选择,集群分片或集群单例(如果您必须有一个您提到的类型的actor)。

 类似资料:
  • 我遇到了一个场景,我需要检查特定的参与者是否存在,这可以通过ActorSystem完成。actorSelection方法,指定参与者路径 但是,当本地节点上存在此类参与者时,此方法可以正常工作。若actor系统由多个节点组成,并且actor存在于另一个节点上,则该方法告诉我们actor不存在。若我给出指定远程参与者系统的字符串,那个么这个方法可以工作。但在actorSelection方法中指定远程

  • 我的用例是,我想建立一个运行Akka Actors的节点集群。每个参与者都是同一参与者的实例,用于处理与特定用户的WebSocket连接。每个参与者都将使用唯一的路径注册自己。在非集群设置中,我可以简单地通过其路径调用actor,如其中,是actor实例的唯一名称。我必须将消息传递给这些参与者,这样他们才能将消息发送回各自的WebSocket客户端。 显然Akka集群提供了各种设置:http://

  • 我有一个演员系统,如下图所示。 主演员启动监控演员和监控演员。 Monitor actor会发出一条消息,告诉自己每30秒检查一次设备资源清册。对于资源清册中存在的每个设备,它会向Supervisor actor发送一条消息以注册该设备。 主管参与者在收到来自监视器参与者的消息以注册设备时启动设备参与者。 代码可以在github上找到。 在单个JVM实例中,一切都运行得很好,但当涉及到集群模式时,

  • 我们正在使用Akka sharding将我们的运行参与者分布在多个节点上。这些行为体是持久的,我们将它们的内部状态保留在数据库中。 现在我们需要将ActorRef添加到“Metrics Actor”中,在每个节点上运行。shard中的每个actor都应该将遥测数据发送给metrics actor-它必须选择正确的metrics actor,该actor在本地运行于同一节点上。原因是,度量执行元收集

  • 我很难弄清楚我如何知道我的演员何时从非演员代码中完成。 尝试使用akka演员进行并行执行,这似乎真的很好,但我需要知道何时所有人都完成了。 我添加了一个监督者演员,产生演员来做工作,从监督者/父演员,我可以观看孩子的终止消息。 我需要从akka actor系统之外的常规java代码中得到帮助,以确定我的监督actor是否完成。 这是否可能,请提供指针。 谢谢哈瑞

  • 例如,我有两个演员——一个家长演员和一个孩子演员。当父级收到消息时,它会产生消息中指定的尽可能多的子角色。如何测试此功能?有没有一种方法可以模拟上下文,或者其他一些方法来检查参与者的创建是否正确和数量是否正确? 更新:基于@Tim answer的解决方案 更改类别: 测试: