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

Akka集群:通过路径调用参与者

东门晨
2023-03-14

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

显然Akka集群提供了各种设置:http://doc.akka.io/docs/akka/current/scala/cluster-usage.html

我想在Kubernetes上运行我的节点,在那里我无法可靠地配置实例名称/域,因为实例将来来往往。

在这种情况下,Akka集群最简单的设置是什么?

共有1个答案

周昊乾
2023-03-14

对库伯内特斯没有任何影响。对于你的情况,我认为akka集群切分只适合你,使用shardRegion获得合适的切分演员

 类似资料:
  • 我有一个akka集群项目: https://github.com/roclas/akka-distributed-hash 它基本上是跨集群节点的分布式HashMap。 我希望能够读取(使用tcpdump或wireshark或类似工具)不同虚拟机中参与者之间交换的消息。 我怎么能这么做? 执行TCP转储时,我只看到“集群消息”,但看不到不同虚拟机中不同参与者交换的消息。 如果我在端口2551上启动

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

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

  • 我希望能够从集群的一个Akka节点创建一个actor,这样actor就可以生存,而不管创建它的节点是否正在运行。 这是我试图处理的场景: 节点A启动。 节点B启动。 节点A和B形成群集。 节点A创建FooActor。 节点A终止。 节点B仍然能够搜索并找到节点A创建的FooActor 节点B会杀死fooactor。 此时,当节点A终止时,它创建的参与者将丢失。 你能告诉我这是否可能使一个参与者比创

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