Suchen nach Akka Actors, um Ereignisse zwischen Java-Threads in derselben JVM zu kommunizieren. Einige dieser Ereignisse enthalten große Objekte (10-100 MB). Ich möchte es vermeiden, diese Objekte zu serialisieren und gleichzeitig Speicherplatz zu sparen, indem ich nur einen Verweis auf das Objekt übergebe; Unterstützt Akka das? Ich verstehe, dass es möglich ist, implement einen benutzerdefinierten Akka Serializer, und das könnte eine Lösung sein, aber darüber hinaus weiß ich nicht viel mehr über das Framework.Unterstützt Akka Inprozessnachrichten ohne Objektserialisierung?
6
A
Antwort
6
Akka behandelt lokale Nachrichtenübergabe als eine Optimierung, die Remoting-Maschinerie umgeht, die den Nachrichtenserialisierer enthält. Siehe location transparency.
Das Übergeben einer Referenz impliziert einen gemeinsamen Status zwischen Threads, was dem Message-Passing-Modell völlig ablehnend ist. –
Ich weiß, aber die Objekte, die ich übergebe, enthalten unveränderliche Werte, es ist sinnlos, sie zwischen Akteuren zu serialisieren und neu zusammenzusetzen, also nehme ich an, die Antwort ist nein? – raffian
Der gemeinsame Status ist kein Problem, solange er nicht veränderbar ist. Das Problem ist _shared mutable state_. Entweder teilen oder veränderlich und du bist auf einem festeren Boden. –