Java Akka群集-每个节点一个管理器参与者
我正在开发一个经常查询大量参与者的应用程序,因此发送/接收大量消息。当应用程序在一台机器上运行时,这不是问题,因为消息是在一个JVM的边界内发送的,这个JVM非常快。但是,当我在多个节点上运行应用程序(使用akka集群)时,每个节点承载这些参与者的一部分,消息通过网络传输,速度变得非常慢Java Akka群集-每个节点一个管理器参与者,java,akka,distributed-computing,actor,akka-cluster,Java,Akka,Distributed Computing,Actor,Akka Cluster,我正在开发一个经常查询大量参与者的应用程序,因此发送/接收大量消息。当应用程序在一台机器上运行时,这不是问题,因为消息是在一个JVM的边界内发送的,这个JVM非常快。但是,当我在多个节点上运行应用程序(使用akka集群)时,每个节点承载这些参与者的一部分,消息通过网络传输,速度变得非常慢 我提出的一个解决方案是在运行应用程序的每个节点上都有一个ManagerActor。这将极大地减少交换的消息数量(即,如果我们在3个节点上运行应用程序,我们将向每个参与者发送3条消息,而不是向每个参与者发送数千条
我提出的一个解决方案是在运行应用程序的每个节点上都有一个ManagerActor。这将极大地减少交换的消息数量(即,如果我们在3个节点上运行应用程序,我们将向每个参与者发送3条消息,而不是向每个参与者发送数千条消息——每个ManagerActor发送一条消息,然后每个ManagerActor在当前JVM中向其他参与者(数千)发送消息,这非常快)。然而,我对Akka还相当陌生,我不太确定这样的解决方案是否有意义。你认为它有什么缺点吗?还有其他更好/更适合Akka的选项吗?您可以使用Akka来实现这一点。这样,您只需以通常的方式在每个节点上启动一个manager actor,让他们订阅一个主题,然后使用该主题向他们发布消息。上面链接的文档中有一个简单的例子。您可能需要使用openmpi,也可以通过谷歌搜索“openmpi java示例”