3

小さな検索アプリケーションを実装するために Akka のリモート処理を使用して、展開の問題が発生しています。

ActorSystem を一連のローカル クラスター マシンにデプロイしてワーカーとして使用したいのですが、これを実現するために application.conf に何を入れればよいか少し混乱しています。たとえば、次を使用できます。

akka.remote {
  transport = "akka.remote.netty.NettyRemoteTransport"
  netty {
    hostname = "0.0.0.0"
    port = 2552
  }
}

各ワーカーは起動時に ActorSystem を実行するだけです。

これにより、ワーカーマシンは起動時にアドレスにバインドできますが、メッセージのリッスンを拒否します:

beaker-24: [ERROR] ... dropping message DaemonMsgWatch for non-local recipient akka://SearchService@beaker-24:2552/remote at akka://SearchService@0.0.0.0:2552

これについて私がこれまでに見つけたドキュメントは、あまり役に立たない私のローカルホストへの展開についてのみ説明しています:)。ホストごとに個別の構成を生成せずにこれを行う方法があることを願っています。


アップデート:

ホスト名として空の文字列を使用すると、通常の IP アドレスを介してホストに接続できます。ホスト名自体を使用したアドレス指定は、現時点では機能しません。

4

1 に答える 1

1

ホスト名として「0.0.0.0」を設定すると、現在、送信先の正当な IP ではないため、基本的にリモート処理が無効になります。背景: アクター リファレンスは、ローカル システムを離れるときにアドレス部分に挿入された構成済みの IP (またはホスト名) を取得します。これは、他のシステムがメッセージを送り返すためのまさに「ポインター ホーム」です。

システムがここで別のアドレスへの返信を受信できるようにするための Scott による取り組みがありましたが、それはまだ含まれていません。

于 2012-05-06T17:22:15.580 に答える