2017-04-25 6 views
0

私はakkaリモーティングで通信する2つのアクターシステムを持っています。RemoteDeadLetterActorRefからのSelectChildNameメッセージ

akka.dispatch.EnvelopeSelectChildNameのメッセージを含む多くのインスタンスが表示されています(akka.remote.RemoteActorRefProvider$RemoteDeadLetterActorRef)。

これらのメッセージの保持されたヒープはかなり大きく、メモリに問題があります。

SelectChildNameメッセージの目的は何ですか?それらを避ける方法はありますか?

FYIこれは、2つのアクターシステム間で発生するDisassociationエラーに関連しているようです。

おかげで、 ミハイル

答えて

1

SelectChildNameメッセージがリモート俳優を解決するためにアッカリモーティングで使用されています。それらの多くが表示されている場合は、ActorRefの代わりにActorSelectionと直接対話している可能性があります。

するたびに(これらはdocsから撮影されている)

val selection = context.actorSelection("akka.tcp://[email protected]:2552/user/actorName") 
selection ! "Pretty awesome feature" 

は、例えば、ActorSelectionにメッセージを送信する - おそらくリモート - 俳優が解決され、それは根本的なことでSelectChildNameメッセージの交換を必要としますAkkaインフラストラクチャ。

その場合は、直接ActorRefを試してみてください。 メソッドを使用してActorSelectionから1つを取得することができます。

docs再び引用:

常に そのActorRefを使用して代わりにActorSelectionに依存する他のアクタと通信することが好ましいです。例外は、リモートシステム

との最初の接触を開始
  • 配達施設で - 最もたらを使用してメッセージを送信する

    • です
    関連する問題