akka cluster singleton proxy无法识别无领导节点上的actor

时间:2015-01-09 09:11:33

标签: akka akka-cluster

我正在尝试构建一个双节点akka集群,并且这两个节点都配置为种子节点。在每个节点,我创建actor并通过以下方式找到它:

    akka {
  //loglevel = "DEBUG"
  log-config-on-start = on
  actor {
    provider = "akka.cluster.ClusterActorRefProvider"
  }
  remote {
    log-remote-lifecycle-events = off
    netty.tcp {
      hostname = "127.0.0.1"
      port = 0
    }
  }
  cluster {
    seed-nodes = [
      "akka.tcp://ClusterSystem@127.0.0.1:2551",
      "akka.tcp://ClusterSystem@127.0.0.1:2552"
    ]
    roles = [
      "transport"
    ]
    auto-down = on
  }
}
final String SINGLETON_GROUP = "client";
getContext().system().actorOf(
                            ClusterSingletonManager.defaultProps(
                                    Props.create(ClientActor.class, channelActive.getCtx()),
                                    loginMessage.getId(),
                                    PoisonPill.getInstance(),
                                    "transport"
                            ), SINGLETON_GROUP
                    );
private ActorRef getActor(String id) {
    ActorRef remoteActor = getContext().system().actorOf(
            ClusterSingletonProxy.defaultProps("user/" + SINGLETON_GROUP + "/" + id,
                    "transport"));
    return remoteActor;
}

我的期望是我可以在任何节点创建一个actor,只要我得到它的singletonPath就可以在任何地方找到它。   但结果是:getActor()仅适用于" leader"节点,并且无法识别其他节点。   如果我对clusterSingleton的理解有误?

0 个答案:

没有答案
相关问题