0

スケーラビリティのために、Map アクター インスタンス (以下に名前を付けmapActorます) を複数のリモート ノード (たとえばhost1、 、 、host2および) に分散させたいと考えていhost3ます。application.confAkkaでこれを行う方法がわかりません。

MapReduceSystem {
  include "common"
  akka {
    actor {
      deployment {
        /mapActor {
          router = round-robin
          nr-of-instances = 48
          remote = "akka.tcp://MapReduceSystem@host1:2552,akka.tcp://MapReduceSystem@host2:2552,akka.tcp://MapReduceSystem@host3:2552" 
        }
        /reduceActor {
          remote = "akka.tcp://MapReduceSystem@host1:2552"
          router = round-robin
          nr-of-instances = 1
        }
        /masterActor {
          remote = "akka.tcp://MapReduceSystem@host1:2552"
          nr-of-instances = 1
        }
      }
    }
    remote.enabled-transports = ["akka.remote.netty.tcp"]
    remote.netty.tcp.hostname = "host1"
  }
}

完全を期すために、ここに私のものがありますcommon.conf

akka {
  actor {
    provider = "akka.remote.RemoteActorRefProvider"
  }
  remote.netty.tcp.port = 0
  remote.log-remote-lifecycle-events = off
  loggers = ["akka.event.slf4j.Slf4jLogger"]
  loglevel = "DEBUG"
}  

mapActorこのアクターのインスタンスを作成するために 3 つのホストを提供したいという定義に注意してくださいremote。これどうやってするの?

私の理解では、この構成はシステム起動マシンに対応しますが、構成はおよびhost1でどのように見えるでしょうか?host2host3

4

2 に答える 2

2

pushyによって指摘された構成構文の問題に加えて、システムを開始する前にシステムhost1を開始する以外に何もする必要がないため、 が開始されたときにそのルートがそれらに正常に展開されます。構成は他のホストから取得され、他のホストに転送されます。それ以上の構成は必要なく、ワーカー ホストで を呼び出す必要もありません (少なくとも、ここで説明しているルーターの場合は除きます)。host2host1/user/mapActorhost1actorOf

于 2013-10-23T19:11:21.903 に答える