我已经开始与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 1
、2
、OR3
。接收消息的远程参与者然后将消息发送到其中一个实例,也是以循环方式发送的。
从我所读到的内容来看,我似乎需要实现集群。然而,从我发现的文档中,我无法判断如何使用这种嵌套的循环处理来实现它。这听起来更像是一个去中心化的网络,来自Main Actor
的消息将被传递到Remote Actor 1
、2
、AND3
,这绝对不是我想要的。
标准阿卡有什么办法吗。NET NuGets来实现这一点,或者我需要在Main Actor
中实现我自己的循环代码来向Remote Actor
的每个个体发送消息,然后让他们进行自己的标准循环。
如果有任何帮助或建议,我们将不胜感激,因为我对使用这个图书馆还比较陌生。提前谢谢。
您不需要创建自己的循环代码。你就快到了,你只需要稍微调整一下你的代码。
你经历过吗?您需要的是配置主机名。
我创建这个是为了更好地向你解释
- 从
Main Actor/Router
可以远程部署routers
- 您可以浏览这两个页面(具有远程参与者的路由器和如何使用HOCON配置路由器(以更好地理解
如果您不清楚,请告诉我!
我认为@Mestic的回应是你想要的,但只是澄清一下:
- 您可以让主要参与者使用
Group
循环路由器向您子域上的远程参与者发送消息 - 这些远程参与者中的每一个都可以实现本地
Pool
循环路由器,以在N个相同参与者之间本地负载平衡工作
Group
路由器使用ActorPath
向其他人创建的参与者发送消息,而Pool
路由器创建N个相同的子参与者。前者通常用于通过Akka在ActorSystem
之间进行消息分发。集群/阿卡。远程,而后者主要用于并行化工作。
什么阿卡。集群使您的情况更容易。Group
路由器有可能在运行时动态发现新节点(或在终止时删除的旧节点(,而Akka。Remote要求在启动时将该信息烘焙到配置中。阿卡。换句话说,集群只是更具动态性。