首页 > 解决方案 > 用于远程路由的 Akka 目标节点

问题描述

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

具有远程目标的路由器

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"]
      }
    }
  }
}

这行不通。最后,任何加入的新节点都将部署路由。我认为这种配置意味着“只”在目标节点上部署路由,而是部署在“任何”新节点上。

这是它的工作原理吗?如何使路由仅部署在特定节点上?一定有问题,否则添加“目标”配置绝对没有任何作用。

标签: configurationakkaremoting

解决方案


Akka 文档中所述

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"]
    }
}

上述配置,将克隆时代中定义的actor,Props并将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"]
        }
    }
}

确保ClusterSystemat127.0.0.1:2560ClusterSystemat127.0.0.1:2570正在运行。


推荐阅读