我在一个JVM上用Akka开发了我的应用程序。现在我想在多台机器上分配工作负载。我开始阅读文档并感到困惑。
有两种方法可以通过群集和远程处理来分发Akka应用程序。 我没有区分这两者。 如果我理解正确,两者都会相互排斥,因为在配置中,需要使用不同的提供者进行参与:
akka.remote.RemoteActorRefProvider
akka.cluster.ClusterActorRefProvider
那么用例是什么?当我选择一个而不是另一个?
也许聚类就像遥控的超集一样,或者反过来可能是另一种方式?
答案 0 :(得分:36)
它们不是互斥的,因为在远程处理之上实现了集群。远程处理的主要特征是ActorRefs的位置透明性。群集在其上添加分布式成员资格。直接使用远程处理很少有用,在大多数用例中首选聚类。
答案 1 :(得分:5)
总是最好查看代码
private[akka] class ClusterActorRefProvider ... extends RemoteActorRefProvider
首先, ClusterActorRefProvider 只是 RemoteActorRefProvider
的扩展名添加到远程处理的cluster-akka的核心功能是:
你会在源代码中找到所有这些插件的味道。