Я новичок в программировании с платформой Play, а также с Akka, хотя я читал о них некоторое время. Теперь я начинаю приложение с доказательством концепции по умолчанию/основной среде воспроизведения. Мой вопрос связан с клиентом api веб-службы в Play (http://www.playframework.org/documentation/2.0.1/ScalaWS).
Это приложение в основном должно оповещать о звонках на удаленный веб-сервис SOAP как можно более масштабируемым и эффективным. Браузер делает ajax-звонки в JSON, приложение Play должно преобразовывать их в SOAP/XML и наоборот в ответ.
Если я использовал клиент веб-службы воспроизведения непосредственно через контроллер, эти вызовы могут быть асинхронными, что намного лучше, чем то, что мы делаем сейчас (блокирование). Однако я не понимаю, как именно это будет вести себя при большой нагрузке. Будет ли concurrency/управление потоками в значительной степени оставлено на базовом сервере Netty? У меня есть способ настроить его?
Альтернативой может быть использование актерской системы Akka от контроллеров, где я могу контролировать политику маршрутизации, размер пула, отказоустойчивость и т.д. Если я возьму этот подход, будет ли еще смысл использовать Play async WS client? Если да, то будет ли этот подход (составления фьючерсов?) Рекомендуемым шаблоном?
Еще один фактор, который, по-видимому, делает подход Акка более привлекательным, заключается в том, что у этого приложения в конечном итоге будет несколько других обязанностей, поэтому мы могли бы контролировать/настраивать ресурсы, разрешенные для этой ActorSystem, и уменьшать риск того, что все приложение будет зависеть от SOAP обслуживание.