当我查看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名称似乎有点乏味且非常有限。
答案 0 :(得分:5)
您可以使用演员的道具设置部署选项,例如:Props.Create(() => new MyActor).WithDeploy(new Deploy(new RemoteScope("akka.tcp://remote-system-name@ip:port/")))
。
答案 1 :(得分:1)
我想到的一种解决方法是远程部署一个固定名称管理员,并将其作为代理使用。创建并可能与所有其他动态命名的子actor进行通信。