用于远程路由的 Akka 目标节点

Akka target nodes for remote routing

我使用以下方法创建了一个远程环境来部署路由:

Routers with Remote Destinations

deployment {
  /router1 {
    router = round-robin-pool
    nr-of-instances = 7
    cluster {
      enabled = on
      allow-local-routees = off
      max-nr-of-instances-per-node = 3
      use-roles = ["backend"]
      target {
        nodes = ["akka.tcp://ClusterSystem@127.0.0.1:2560", "akka.tcp://ClusterSystem@127.0.0.1:2570"]
      }
    }
  }
}

这行不通。最后,任何加入的新节点都将部署路由。我认为此配置意味着 "only" 在目标节点上将部署 routees,但它部署在 "any" 新节点上。

是这样的吗?如何使路由只部署在特定节点上?一定是哪里出了问题,否则添加 "target" 配置绝对没有任何作用。

Akka documentation

中所述
akka.actor.deployment {
    /parent/remotePool {
        router = round-robin-pool
        nr-of-instances = 10
        target.nodes = ["akka.tcp://app@10.0.0.2:2552", "akka.tcp://app@10.0.0.3:2552"]
    }
}

以上配置,将克隆 Props 中定义的 actor remote pool 10 次,并将其均匀分布部署在两个给定的目标节点上。

应用此配置

deployment {
    /router1 {
        router = round-robin-pool
        nr-of-instances = 7
        target {
            nodes = ["akka.tcp://ClusterSystem@127.0.0.1:2560","akka.tcp://ClusterSystem@127.0.0.1:2570"]
        }
    }
}

确保 127.0.0.1:2560 处的 ClusterSystem127.0.0.1:2570 处的 ClusterSystem 是 运行。