2

シリアル化された Actor をその状態と共に別の Actor に渡したい (ネットワーク経由で移行できるようにするため)。そのための API はありますか、それともゼロから実装する必要がありますか?

4

1 に答える 1

2

このタイプの機能は Akka の Remoting でサポートされていると思います。このリンク、特にプログラムによるリモート展開のセクションをチェックして、それが探しているものかどうかを確認してください。

http://doc.akka.io/docs/akka/2.1.2/java/remoting.html

また、ActorRefsシリアライズ可能であるため、確実ActorRefに をリモート ノード上の別のアクターに渡し、指定した ref にメッセージを送り返すことができます。その結果、メッセージは開始ノードに戻ります。

考えるべきことがもう1つあります。Actor実際にインスタンスを別のアクターに渡すことはできません。実際に渡すことができるのは のみです。これは、ref が表すインスタンスActorRefにコールバックするための軽量ハンドルです。Actor本当にアクター インスタンスとその状態を別のノードに移行したい場合は、プログラムによるリモート デプロイ機能の詳細をお読みください。別々のノードで実行されている 2 つのアクター インスタンス間でやり取りするだけの場合は、 を使用ask (?)して要求/応答の動作を取得する (sender受信側のアクターで var を使用して呼び出し側のアクターに送り返すか、送信側をActorRef( 経由で) 渡しますcontext.self) 。経由tell (!)して、受信側のアクターでその参照を使用してメッセージを送り返します。

于 2013-04-28T14:57:32.143 に答える