Akka.NET中的嵌套、远程、循环池

bttbmeg0  于 2022-11-05  发布在  .NET
关注(0)|答案(2)|浏览(192)

我已经开始使用Akka.NET,并且能够在远程系统上使用多个示例进行自部署(使用具有5个示例的循环池路由器进行部署)。但是,现在我希望能够将多个服务器链接在一起。目前我正在使用:

Local Actor --> Remote Actor --> 5 instances

然而我正在努力做这样的事情:

/--->Remote Actor #1 (server1.domain.com) --> 5 instances
Main Actor< --->Remote Actor #2 (server2.domain.com) --> 5 instances
           \--->Remote Actor #3 (server3.domain.com) --> 5 instances

Main Actor有需要处理的消息时,它会以循环方式将其发送到Remote Actor 12OR3。然后,接收消息的远程执行元也以循环方式将其发送到其中一个示例。
从我所读到的内容来看,我 * 似乎 * 需要实现集群。但是,从我找到的文档中,我无法告诉如何用这种嵌套的循环处理来实现集群。它听起来更像是一个去中心化的网络,来自Main Actor的消息将被传递到Remote Actor 123,这绝对不是我想要的。
有没有办法用标准的Akka.NET NuGets来实现这个,或者我需要在Main Actor中实现我自己的循环代码,以便向每个Remote Actor的个体发送消息,然后让他们做他们自己的标准循环。
任何帮助或建议将不胜感激,因为我是相对新的使用这个图书馆。谢谢你提前。

sf6xfgos

sf6xfgos1#

您不需要创建自己的循环代码。您几乎已经做到了这一点,只需要对代码进行一点调整。
你看过this了吗?你需要的是配置主机名。
I created this to better explain this to you
1.您可以从Main Actor/Router远程部署routers
1.您可以浏览这两页(Router with remote actorsHow to use HOCON to configure your routers),以便更好地理解。
如果你不清楚,请告诉我!

nukf8bse

nukf8bse2#

我认为@Mestical的回应是你想要的,但只是澄清一下:
1.您可以让主要参与者使用一个Group循环路由器来向您的子域上的远程参与者发送消息;
1.这些远程参与者中的每一个都可以实现本地Pool循环路由器,以在N个相同的参与者之间本地地负载平衡工作。
Group路由器使用由其他人创建的ActorPath到消息执行元,而Pool路由器创建N个相同的子执行元。前者通常用于在Akka.Cluster / Akka.Remote上的ActorSystem之间分发消息,而后者主要用于并行化工作。
Akka.Cluster让您的Group路由器可以在运行时动态发现新节点(或者在旧节点终止时删除旧节点),而Akka.Remote需要在启动时将这些信息写入配置。换句话说,Akka.Cluster更具动态性。

相关问题