阿卡的嵌套、远程、循环水池.NET



我已经开始与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 12AND3,这绝对不是我想要的。

标准阿卡有什么办法吗。NET NuGets来实现这一点,或者我需要在Main Actor中实现我自己的循环代码来向Remote Actor的每个个体发送消息,然后让他们进行自己的标准循环。

如果有任何帮助或建议,我们将不胜感激,因为我对使用这个图书馆还比较陌生。提前谢谢。

您不需要创建自己的循环代码。你就快到了,你只需要稍微调整一下你的代码。

你经历过吗?您需要的是配置主机名。

我创建这个是为了更好地向你解释

  1. Main Actor/Router可以远程部署routers
  2. 您可以浏览这两个页面(具有远程参与者的路由器和如何使用HOCON配置路由器(以更好地理解

如果您不清楚,请告诉我!

我认为@Mestic的回应是你想要的,但只是澄清一下:

  1. 您可以让主要参与者使用Group循环路由器向您子域上的远程参与者发送消息
  2. 这些远程参与者中的每一个都可以实现本地Pool循环路由器,以在N个相同参与者之间本地负载平衡工作

Group路由器使用ActorPath向其他人创建的参与者发送消息,而Pool路由器创建N个相同的子参与者。前者通常用于通过Akka在ActorSystem之间进行消息分发。集群/阿卡。远程,而后者主要用于并行化工作。

什么阿卡。集群使您的情况更容易。Group路由器有可能在运行时动态发现新节点(或在终止时删除的旧节点(,而Akka。Remote要求在启动时将该信息烘焙到配置中。阿卡。换句话说,集群只是更具动态性。

最新更新