虽然我已经阅读了一段时间,但对于使用Play框架以及Akka进行编程,我还是相当新的。我现在在默认/基本Play环境中启动一个概念验证应用程序。我的问题来自Play中的Web服务客户端API(http://www.playframework.org/documentation/2.0.1/ScalaWS)。使用Akka从Play应用程序进行Web服务调用
该应用程序基本上需要以尽可能可扩展和高性能的方式调用对远程SOAP Web服务的调用。浏览器使用JSON进行ajax调用,Play应用程序需要将它们转换为SOAP/XML,反之亦然。
如果我通过控制器直接使用play web服务客户端,这些调用可以是异步的,这比我们现在做的更好(阻塞)。但是,我不清楚这种情况在重负载下会如何表现。并发/线程管理将主要留给底层的Netty服务器吗?我有什么方法可以调整它吗?
另一种方法是从控制器中使用Akka actor系统,在那里我可以控制路由策略,池大小,容错等。如果我采取这种方法,是否仍然有意义使用Play的异步WS客户?如果是这样,这种方法(构成未来?)是否是推荐的模式?
似乎使Akka方法更具吸引力的另一个因素是,此应用程序最终还会承担其他一些责任,因此我们可以控制/调整允许此ActorSystem的资源并降低整个应用程序被SOAP服务。
其实,我想知道的第二个选项是一种双异步。演员是否仍然可以使用WS API(或底层的ning异步httpclient)? – anchormath
您通过WS请求获得承诺。演员仍然可以使用它。 – iwalktheline