Пути для детей разгромленных актеров Акка

#akka

#акка #akka

Вопрос:

У меня есть маршрутизируемый актер Akka, чьи маршруты порождают дочерних актеров другого типа. Мне не нужно, чтобы порожденные дочерние элементы были связаны с определенным маршрутом, и на самом деле я нахожу это недостатком. Я ожидал бы, что смогу обращаться к этим дочерним элементам по пути /RoutedActor/ChildActorName , но я нахожу их по пути, который включает имя маршрутизатора: /RoutedActor/$a/ChildActorName . Я понятия не имею, какой маршрут породил данный дочерний элемент, поэтому я решил обойти это, указав путь для моих ActorSelections ( /RoutedActor/*/ChildActorName ). Это, должно быть, довольно неэффективный способ поиска актера.

Я понимаю, что эти дочерние элементы на самом деле являются внуками маршрутизатора, но это действительно большой недостаток в шаблоне маршрутизатора. Просто добавив маршрутизацию для распараллеливания некоторой работы, я нарушил свои ActorSelections и теперь не знаю фактического пути ни к одному из моих дочерних актеров. Есть ли способ заставить дочерних актеров направлять дочерние элементы маршрутизатора, и если да, есть ли какие-либо недостатки в этом? Я ничего не нахожу по этому поводу в документации Akka (v2.3.7).

Комментарии:

1. может быть, стоит просто передать actorref вместо того, чтобы использовать выбор актера?

2. Спасибо за предложение @YikSanChan. Я рассматривал это, но мне нужно будет поддерживать какой-то реестр ссылок на ActorRefs в актуальном состоянии (дочерние актеры часто создаются и уничтожаются). Я теряю много удобства иерархии системы актеров, если мне приходится вручную отслеживать этих актеров.

3. Я вижу, звучит убедительно. может быть, обратитесь к этому сообщению manuel.bernhardt.io/2018/03/20 /… , это указывает на решение, которое стоит попробовать

4. Ценю ответ и ссылку. Я знаком с различиями в производительности выбора и ссылки. Я бы предпочел, чтобы сообщение закончилось мертвыми буквами, чем оплачивать стоимость разрешения ссылки или обработки ответа из сообщения Идентификации. Мне также все еще нужен путь для создания выделения, поэтому я думаю, что у меня все еще будет проблема «к какому маршруту вы принадлежите?».