Таким образом, FrontendActor
отправляет Source
на ProcessorActor
. В приведенном выше примере это работает успешно.
С таким подходом все в порядке?
Непонятно, что вас беспокоит.
Отправка Source
от одного актера к другому актеру на той же JVM - это нормально. Поскольку межакторное взаимодействие в той же JVM, как указано в документации , "просто осуществляется через передачу ссылок", в вашем примере 1 нет ничего необычного. По сути, происходит то, что ссылка на Source
передается на ProcessorActor
после завершения Future
. Source
- это объект, который определяет часть потока; вы можете отправить Source
от одного актера другому актеру локально так же, как вы можете любой объект JVM.
(Однако, когда вы пересекаете границу одной JVM, вам приходится иметь дело с сериализацией.)
1 Незначительное тангенциальное наблюдение: FrontendActor
вызывает context.system.actorOf(Props[ProcessorActor])
, что создает актера высшего уровня. Как правило, актеры высшего уровня создаются в основной программе, а не в актере.