2017-02-12 2 views
2

У меня есть приложение Akka с несколькими актерами. Актерское дерево выглядит примерно так:Akka acessing actor из другой ветки дерева

   /user 
     /one   TARGET 
    /two /three 
    SOURCE 

В исходном актере я должен отправить сообщение участнику TARGET. Однако я не знаю, как это сделать правильно.

Разрешение ActorRef от ActorSelection каждый раз кажется очень плохим.

Есть ли узоры?

+0

Почему разрешение каждого раза кажется плохой идеей? Противоположные ссылки на кеширование - это плохая идея, поскольку ref может измениться, когда, например, актер воссоздан. – michaJlS

+0

@michaJlS Ну, ref не изменяется, если используется политика перезагрузки. Как насчет разрешения - это займет какое-то время, и я должен сделать это за каждый запрос, что плохо для меня. –

ответ

0

Две модели Я в курсе и использования являются:

  1. Пропустите ActorRef из TARGET в оригинале сообщения, отправленного на SOURCE, так что путь SOURCE знает, чтобы ответить на TARGET. Это хорошо работает, когда TARGET отличается от сообщения к сообщению и упрощает модульное тестирование.
  2. Решите ТРЕВОЖНЫЙ ActorRef из списка ActorSelection один раз в ESB или в Locator Service и передайте это через SOURCE и используйте это. Это хорошо работает, когда в актерской системе есть только один экземпляр TARGET, однако он немного упростит модульное тестирование.
+0

Не могли бы вы дать мне больше информации о втором варианте, поскольку у него действительно есть только один экземпляр TARGET. –

Смежные вопросы