2012-07-19 118 views
3

我们正在学习使用Play!新项目中的框架。我们选择了Play!因为它的生产力,Scala支持和非阻塞体系结构。Play Framework,Ebean和Akka Promises

经过压力测试(Java)计算机数据库示例应用程序后,我看到很多调度程序和Ebean线程,我无法了解Play如何与Ebean ORM集成。每一个电话都被派往Akka并在另一个线程中执行。

我看过所有玩!框架文档(特别是本部分http://www.playframework.org/documentation/2.0/JavaAsync),并且找不到有关此集成工作方式的任何信息。

如果有人能为我们照亮这条道路,我将非常感激。

谢谢!

回答

3

首先,关于基准:

请阅读此页关于产品设置:https://github.com/playframework/Play20/wiki/Production它的关键是有正确的阿卡设置运行任何基准测试(取决于您的应用程序是否主要是阻塞或非阻塞前应用程序你可能需要使用不同的线程设置)。另外,请确保您只在prod模式下进行基准测试。

至于ebean:play按原样使用ebean库(包括运行ebean的字节码增强器),所以没有什么特别的地方。一般来说,每个请求都会得到一个单独的线程,并且我们通过akka异步地将响应发送给netty。

希望这会有所帮助。

+1

好的......如果每个请求都发送给Akka,并且永远不会阻止,为什么我们需要_Asynchronous Results_? 我以为玩!会阻止我执行一些计算密集型任务或对数据库进行一些大量查询。 关于基准测试:我正在用'play start'运行应用程序,并根据这篇文章做了一些很好的调整:http://www.jamesward.com/2012/06/25/optimizing-play-2-for-database -driven-apps – leone 2012-07-20 11:54:44

+0

@poko我也对此感兴趣。你认为你可以回答吗? – daniels 2015-07-06 07:45:07