如何在Akka.NET

时间:2016-04-19 20:34:34

标签: c# .net akka akka.net

当我查看Akka.NET actor远程部署的示例时,它通过actor系统配置完成,如下所示:

actor {
    provider = ""Akka.Remote.RemoteActorRefProvider, Akka.Remote""
    deployment {
        /MyActor {
            remote = ""akka.tcp://MyActors@127.0.0.1:8091""
        }
    }
}

上面的字符串“MyActor”是实际的演员名称。我不清楚如何部署一个具有动态名称的演员(例如“MyActor:{UID}”)或远程部署未知数量的演员?有没有办法通过代码动态配置部署选项?在配置中指定所有可远程部署的actor名称似乎有点乏味且非常有限。

2 个答案:

答案 0 :(得分:5)

您可以使用演员的道具设置部署选项,例如:Props.Create(() => new MyActor).WithDeploy(new Deploy(new RemoteScope("akka.tcp://remote-system-name@ip:port/")))

答案 1 :(得分:1)

我想到的一种解决方法是远程部署一个固定名称管理员,并将其作为代理使用。创建并可能与所有其他动态命名的子actor进行通信。