2013-11-20 9 views
6

Akka Actorsを使用して、同じJVM内のJavaスレッド間でイベントをやりとりすることを検討しています。これらのイベントの一部には、大きなオブジェクト(10〜100Mb)が含まれています。オブジェクトへの参照だけを渡してメモリ空間を節約しながら、これらのオブジェクトを直列化しないようにしたい。 Akkaはこれをサポートしていますか?私は、implementカスタムAkkaシリアライザが可能であることを理解しています。それは解決策かもしれませんが、それを超えて私はフレームワークについて他にはあまり知らないです。Akkaはオブジェクト直列化のないインプロセスメッセージングをサポートしていますか?

+0

参照を渡すことは、スレッド間の共有状態を意味します。これは、メッセージ受け渡しモデルを完全に嫌うものです。 –

+3

私は知っていますが、渡しているオブジェクトには不変の値が含まれています。アクター間で直列化して再構成するのは無意味ですから、答えはいいえですか? – raffian

+0

共有状態は変更できない限り問題ありません。問題は_shared mutable state_です。共有したり変更したりすることができます。あなたはより強固です。 –

答えて

6

Akkaはメッセージシリアライザを含むリモートマシンを迂回してローカルメッセージパッシングを最適化として処理します。 location transparencyを参照してください。

+1

私はこれをテストしましたが、あなたは正しいです。送信されたオブジェクトは、メモリアドレスに基づいて受信されたオブジェクトと同じでした。 – raffian

+1

これが文書化されている場所はありますか? – jhegedus

関連する問題