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

Akka群集中的执行元查找

江宏放
2023-03-14

共有1个答案

贾实
2023-03-14

ActorSelection的另一种方法是查找表。如果你需要做大量的演员选择和演员创作不是那么动态,这可以是一个更好的解决方案。

在每个节点上,您可以创建一个数据结构,如map[String,List[String]]第一个键是节点名,而List value是该节点中的actor refs。

诀窍是当任何一个节点对它的参与者有变化(创建,停止),另一个参与者应该通知其他节点关于变化,因此任何节点都同步更新了地图。

map.get(nodeName) match {
  case Some(n) => n.contains(actorName)
  case None => false
}
 类似资料:
  • 我正致力于将一个单节点akka actor系统应用程序改为akka集群。一个变化是将一种有状态的参与者(在运行时可以有很多)变成集群分片托管实体。现在它在多个节点上运行良好。 我面临的一个问题是如何查询(获取全部)在集群中划分区域所创建的实体。以前在单节点模式下,它使用actor system ActorSelection进行actor路径匹配以获得匹配的actor列表,这在集群分片中不再起作用。

  • 我试图学习Akka集群下面的教程提供了这里 我已经创建了应用程序和回购是在这里。 正如教程中提到的,我已经启动了FrontEndApp 即使我在2551和2552上启动后端应用程序,上述警告消息也会不断重复。 在2551上启动后端参与者的终端日志。 最后一个日志持续重复。 在2552上启动后端参与者的终端日志。 不确定是什么原因群集节点不能检测到彼此和参与者节点与后端。 我会错过任何设置吗?

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

  • 问题内容: 在Akka actor中,如何找到群集的节点?即,本地节点认为当前可访问的节点。 谢谢-丹尼尔 问题答案: 您实际上不需要订阅或。您可以只访问集群扩展的成员,例如,

  • 我遇到了在多个请求下扩展应用程序的问题。 每个请求都向一个参与者发送一个ask,然后生成其他参与者。这是很好的,但是,在负载下(一次5个以上的询问),会花费大量的时间将消息传递给目标执行元。最初的设计是均匀地隔离请求,但这造成了一个瓶颈。示例: 在此图片中,是在查询计划解析程序之后发送的。但是,当执行元接收到此消息时有一个多秒的间隔。这只在负载(5+请求/秒)下才会出现。我最初以为这是一个饥饿的问