首页 文章

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

提问于
浏览
29

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

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

akka.remote.RemoteActorRefProvider
 akka.cluster.ClusterActorRefProvider

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

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

2 回答

  • 5

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

  • 35

    总是最好看一下代码

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

    private[akka] class ClusterActorRefProvider ... extends RemoteActorRefProvider
    

    首先 ClusterActorRefProvider 只是 RemoteActorRefProvider 的延伸

    集群中的核心功能-akka添加到远程处理中:

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

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

相关问题