2017-02-12 4 views
2

Ich habe Akka-Anwendung mit mehreren Akteuren. Schauspieler Baum sieht wie folgt aus:Akka aufnehmenden Schauspieler aus einem anderen Ast

   /user 
     /one   TARGET 
    /two /three 
    SOURCE 

Im Quell Schauspieler Ich habe Nachricht senden Schauspieler an TARGET. Ich weiß jedoch nicht, wie ich es richtig machen soll.

Auflösen von ActorRef von ActorSelection jedes Mal scheint sehr schlecht zu sein.

Gibt es irgendwelche Muster?

+0

Warum scheint die Auflösung jedes Mal eine schlechte Idee zu sein? Das Gegenteil, Caching-Referenzen, ist eine schlechte Idee, wie der Ref ändern kann, wenn z.B. Schauspieler wird neu erstellt. – michaJlS

+0

@michaJlS Nun, ref wird nicht geändert, wenn die Neustart-Richtlinie verwendet wird. Was ist mit Auflösung - es dauert einige Zeit und ich muss es für jede Anfrage tun, was eine schlechte Idee für meinen Geist ist –

Antwort

0

Die beiden Muster Ich bin mir dessen bewusst und Verwendung sind:

  1. Geben Sie die ActorRef von TARGET in der ursprünglichen Nachricht zu SOURCE gesendet, so dass Art und Weise die Quelle zum Ziel zu reagieren weiß. Dies funktioniert gut, wenn TARGET sich von Nachricht zu Nachricht unterscheidet und Einheitentests vereinfacht.
  2. Lösen Sie den TARGET ActorRef von der ActorSelection einmal entweder in einem ESB oder Service Locator und übergeben Sie das an SOURCE, und verwenden Sie das. Dies funktioniert gut, wenn genau eine Instanz von TARGET im Actor-System vorhanden ist. Allerdings wird dadurch der Komponententest ein wenig komplexer.
+0

Könnten Sie bitte geben Sie mir mehr Informationen über die zweite Option, da es wirklich nur eine Instanz von TARGET. –

Verwandte Themen