如何在 Akka.NET 中远程部署具有动态名称的 actor
How to remotely deploy actor with dynamic name in 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,并将其用作 'proxy' 来创建并可能与所有其他动态命名的子 actor 进行通信。
您可以使用 actor 的 Props 设置部署选项,例如:Props.Create(() => new MyActor).WithDeploy(new Deploy(new RemoteScope("akka.tcp://remote-system-name@ip:port/")))
。
当我查看 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,并将其用作 'proxy' 来创建并可能与所有其他动态命名的子 actor 进行通信。
您可以使用 actor 的 Props 设置部署选项,例如:Props.Create(() => new MyActor).WithDeploy(new Deploy(new RemoteScope("akka.tcp://remote-system-name@ip:port/")))
。