2017-01-12 2 views
0

Я новичок и в Play Framework, и в Akka Toolkit.Сыграть в Async Vs Akka Актер

Мы пытаемся создать слой оркестровки между веб-клиентом и микросервисами, используя Play.
Итак, в основном для каждого запроса от клиента, Play должен выполнить WS-вызов и вернуть JSON (а также кеш-код).

Теперь, выполняя вызов WS, мы можем использовать API Play Async или использовать актеров Akka. Вызывает ли один из этих вариантов другой вариант?

Есть ли какая-либо рекомендация относительно того, когда вы должны участвовать в использовании актеров Akka вместе с Play по сравнению с использованием API-интерфейсов Play Async?

+0

Что такое Play Async API, точно? Укажите веб-ссылку. Существуют различные асинхронные решения, используемые в Play. –

+0

https://www.playframework.com/documentation/2.5.x/JavaAsync «Java 8 предоставляет универсальный API обещаний, называемый CompletionStage. В итоге будет завершен CompletionStage со значением типа Result. Используя CompletionStage вместо нормальный результат, мы можем быстро вернуться из нашего действия, не блокируя ничего. Игра будет служить результату, как только будет погашено обещание. Веб-клиент будет заблокирован в ожидании ответа, но ничего не будет заблокировано на сервере, а серверные ресурсы могут использоваться для обслуживания других клиентов ». –

ответ

0

В Акка, основное понятие как актер, являющийся объектом с памятью для сохранения состояния. Последовательные операции с этим состоянием сериализуются системой и не могут вмешиваться. В сущности/фьючерсе на Java8 основным понятием является асинхронный вызов метода, и если разные методы принадлежат одному и тому же объекту, пользователь несет ответственность за предоставление последовательного доступа - что нелегко и может быть подвержено ошибкам. Затем, используя фьючерсы, подразумевается создание объекта Future для каждой отдельной операции, которая может считаться служебной, если операции мелкозернистые. С другой стороны, CompletableFuture имеет средства для объединения нескольких событий в один, например allOf(), который не имеет прямого аналога в Акке.

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