Для Akka 2.x требуется множество команд для ссылки ActorSystem. Итак, чтобы создать экземпляр актера MyActor, вы можете сказать:
val system = ActorSystem()
val myActor = system.actorOf(Props[MyActor])
Из-за частых потребностей в ActorSystem: многие примеры кода опускают создание из кода и предполагают, что читатель знает, откуда появилась переменная system.
Если ваш код создает участников в разных местах, вы можете дублировать этот код, возможно, создавая дополнительные экземпляры ActorSystem, или вы можете попробовать использовать один и тот же экземпляр ActorSystem, обратившись к некоторому глобальному или передав ActorSystem вокруг.
Документация Akka предоставляет общий обзор систем участников под заголовком "Системы актеров" и документация класса ActorSystem. Но ни одна из них не помогает в объяснении того, почему пользователь Акки не может просто полагаться на Акку, чтобы управлять этим под капотом.
Вопрос (ы)
-
Каковы последствия совместного использования одного и того же объекта
ActorSystemили создания нового? -
Каковы лучшие практики здесь? Прохождение вокруг
ActorSystemвсе время кажется удивительно тяжелым. -
Некоторые примеры дают имя
ActorSystema:ActorSystem("MySystem")другие просто вызываютActorSystem(). Какая разница, и что, если вы используете одно и то же имя дважды? -
Требуется ли
akka-testkit, чтобы вы делили общийActorSystemс тем, который вы передаете конструкторуTestKit?