シリアル化された Actor をその状態と共に別の Actor に渡したい (ネットワーク経由で移行できるようにするため)。そのための API はありますか、それともゼロから実装する必要がありますか?
1 に答える
このタイプの機能は 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 (!)
して、受信側のアクターでその参照を使用してメッセージを送り返します。