Akka Typed ActorSelection / Receptionist - PullRequest
1 голос
/ 10 января 2020

У меня есть вопрос об ActorSelection / Receptionist в новом Akka Typed .....

До Akka Typed я не использовал ActorSelection, потому что где-то читал, что он не производительный, поэтому я сохранил ссылку на актера над HashMaps, сейчас я читаю документацию по типу Akka, я вижу, что существует другой механизм Receptionist, поэтому для меня вопрос, не сталкивается ли он с теми же проблемами ActorSelection, и я должен придерживаться своего старого шаблона хранения ссылок на Actor через HashMap или теперь регистратор - это путь к go ....

Мой конкретный сценарий c, мой Актер порождает нескольких дочерних акторов, создает несколько дочерних акторов, если родительский актер пассивируется или восстанавливается через Акку Настойчивость, он должен снова найти ссылку на этих дочерних актеров ....

Так что, как вы думаете, я буду испытывать проблемы с производительностью, если я преобразую в Receptionist ?????

Thx для ответы ...

1 Ответ

0 голосов
/ 13 января 2020

ActorSelection разрешит путь актера к ActorRef каждый раз, когда вы его используете, это несколько дорого, если используется для актера с высокой пропускной способностью, но имеет преимущество, что если актер остановлен, а затем новый Актер запускается по тому же пути, ActorSelection будет доставлять сообщения новому актору, а если у вас есть ActorRef, он конкретно указывает на экземпляр актера, который не остановлен, и сообщения заканчиваются пустыми буквами.

Администратор совсем другой и больше похож на реестр актеров, на которых вы можете подписаться. Когда набор ActorRef, зарегистрированных для ключа, изменяется, вы получаете сообщение об обновлении с новым набором, никаких дополнительных накладных расходов на каждое отправленное сообщение нет, вы имеете дело непосредственно с ActorRef s получателей.

Обратите внимание, что вы можете использовать GroupRouter для доставки актерам, зарегистрированным на ресепшн, и избежать необходимости подписки в вашем актере.

...