akka.actor.deployment配置动态routes.paths

时间:2018-12-10 14:45:22

标签: akka.net

akka {
   actor{
      provider = "Akka.Cluster.ClusterActorRefProvider, Akka.Cluster"
      deployment {
        /user/OrderBookCoordinatorActor/OrderBookActor-* {
          router = round-robin-pool # routing strategy
          routees.paths = ["/user/OrderBookCoordinatorActor"]
          nr-of-instances = 10 # max number of total routees
          cluster {
             enabled = on
             allow-local-routees = on
             use-role = crawler
             max-nr-of-instances-per-node = 1
          }
        }
      }
   }
}

我有一个需要匹配动态角色的问题。

我的代码应该像

var path = "akka.tcp://OrderBook@127.0.0.1:8082/user/OrderBookCoordinatorActor/OrderBookActor-{ticker}"

var actor = Context.ActorSelection(path);
actor.Tell(removeOrder);

但是我想通过部署而不总是输入整个TCP来实现。像ActorSelection一样

var actor = Context.ActorSelection("/user/OrderBookCoordinatorActor" + ticker);
actor.Tell(removeOrder);

但是问题是我的股票代码是动态的,可以随时更改。我该如何使用部署配置?

1 个答案:

答案 0 :(得分:0)

您要寻找的是Akka.Cluster.Sharding,它允许将消息路由到生活在不同节点上的参与者,而无需指定有关节点本身的任何详细信息。