Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Akka群集-每个节点一个管理器参与者_Java_Akka_Distributed Computing_Actor_Akka Cluster - Fatal编程技术网

Java Akka群集-每个节点一个管理器参与者

Java Akka群集-每个节点一个管理器参与者,java,akka,distributed-computing,actor,akka-cluster,Java,Akka,Distributed Computing,Actor,Akka Cluster,我正在开发一个经常查询大量参与者的应用程序,因此发送/接收大量消息。当应用程序在一台机器上运行时,这不是问题,因为消息是在一个JVM的边界内发送的,这个JVM非常快。但是,当我在多个节点上运行应用程序(使用akka集群)时,每个节点承载这些参与者的一部分,消息通过网络传输,速度变得非常慢 我提出的一个解决方案是在运行应用程序的每个节点上都有一个ManagerActor。这将极大地减少交换的消息数量(即,如果我们在3个节点上运行应用程序,我们将向每个参与者发送3条消息,而不是向每个参与者发送数千条

我正在开发一个经常查询大量参与者的应用程序,因此发送/接收大量消息。当应用程序在一台机器上运行时,这不是问题,因为消息是在一个JVM的边界内发送的,这个JVM非常快。但是,当我在多个节点上运行应用程序(使用akka集群)时,每个节点承载这些参与者的一部分,消息通过网络传输,速度变得非常慢


我提出的一个解决方案是在运行应用程序的每个节点上都有一个ManagerActor。这将极大地减少交换的消息数量(即,如果我们在3个节点上运行应用程序,我们将向每个参与者发送3条消息,而不是向每个参与者发送数千条消息——每个ManagerActor发送一条消息,然后每个ManagerActor在当前JVM中向其他参与者(数千)发送消息,这非常快)。然而,我对Akka还相当陌生,我不太确定这样的解决方案是否有意义。你认为它有什么缺点吗?还有其他更好/更适合Akka的选项吗?

您可以使用Akka来实现这一点。这样,您只需以通常的方式在每个节点上启动一个manager actor,让他们订阅一个主题,然后使用该主题向他们发布消息。上面链接的文档中有一个简单的例子。

您可能需要使用openmpi,也可以通过谷歌搜索“openmpi java示例”