Akka中聚类和远程处理的区别

时间:2014-01-21 09:18:08

标签: akka akka-cluster

我在一个JVM上用Akka开发了我的应用程序。现在我想在多台机器上分配工作负载。我开始阅读文档并感到困惑。

有两种方法可以通过群集和远程处理来分发Akka应用程序。 我没有区分这两者。 如果我理解正确,两者都会相互排斥,因为在配置中,需要使用不同的提供者进行参与:

 akka.remote.RemoteActorRefProvider
 akka.cluster.ClusterActorRefProvider

那么用例是什么?当我选择一个而不是另一个?

也许聚类就像遥控的超集一样,或者反过来可能是另一种方式?

2 个答案:

答案 0 :(得分:36)

它们不是互斥的,因为在远程处理之上实现了集群。远程处理的主要特征是ActorRefs的位置透明性。群集在其上添加分布式成员资格。直接使用远程处理很少有用,在大多数用例中首选聚类。

答案 1 :(得分:5)

总是最好查看代码

https://github.com/akka/akka/blob/c2983c7225eeaa035af99e0affeb5f5c841668c4/akka-cluster/src/main/scala/akka/cluster/ClusterActorRefProvider.scala

private[akka] class ClusterActorRefProvider ... extends RemoteActorRefProvider

首先, ClusterActorRefProvider 只是 RemoteActorRefProvider

的扩展名

添加到远程处理的cluster-akka的核心功能是:

  • 群集范围故障检测
  • 带有rootes组的路由器&池功能

你会在源代码中找到所有这些插件的味道。

相关问题