Akka.NET - Cluster 和 ActorSelection 路径

Akka.NET - Cluster and ActorSelection path

我有一个 akka.net 集群,我想向本地和远程的参与者发送消息,并且所有参与者都有路径“/user/foobar”(至少在本地)。我应该使用 ActorSelection 吗?路径应该是什么样子才能同时定位匹配的本地和远程 actor?

从问题中不清楚您是想在集群的一个节点内本地发送消息,还是跨多个节点发送消息。

如果你只想在一个节点中发送它,你可以使用 ActorSelection 并将它发送到任何所需的 actor 路径(例如 /user/*/processingActor)。如果你想通过集群本身发送消息,你需要设置一个集群感知组路由器。

请参阅 docs here for router configuration,您将在其中定义路由。

简而言之,您将执行如下操作:

# inside akka.actor.deployment HOCON
/some-group-router {
  router = round-robin-group
  routees.paths = ["/user/*/processingActor",]
  nr-of-instances=3
  cluster {
    enabled=on
    use-role=targetRoleName
    allow-local-routees=on

  }
}