【问题标题】:Play Framework, Ebean and Akka PromisesPlay 框架、Ebean 和 Akka Promises
【发布时间】:2012-07-18 23:04:36
【问题描述】:
我们正在学习使用 Play!新项目中的框架。我们选择了玩!因为它的生产力、Scala 支持和非阻塞架构。
在对 (Java) 计算机数据库示例应用程序进行压力测试后,我看到了很多调度程序和 Ebean 线程,但我不知道 Play 如何与 Ebean ORM 集成。每个调用都被分派给 Akka 并在另一个线程中执行。
我阅读了所有 Play!框架文档(特别是这部分 http://www.playframework.org/documentation/2.0/JavaAsync),找不到任何有关此集成如何工作的信息。
如果有人能为我们照亮这条路,我将不胜感激。
谢谢!
【问题讨论】:
标签:
playframework
playframework-2.0
akka
ebean
【解决方案1】:
首先,关于基准测试:
请阅读有关生产设置的页面:https://github.com/playframework/Play20/wiki/Production 在运行任何基准测试之前拥有正确的 akka 设置至关重要(取决于您的应用程序主要是阻塞应用程序还是非阻塞应用程序,您可能需要使用不同的线程设置) .另外,请确保您只在 prod 模式下进行基准测试。
至于 ebean:play 是按原样使用 ebean 库(包括运行 ebean 的字节码增强器),所以没有什么特别之处。一般来说,每个请求都有一个单独的线程,我们通过akka将响应异步发送到netty。
希望这会有所帮助。
【讨论】:
-
好吧...如果每个请求都被分派给 Akka,并且永远不会阻塞,为什么我们需要 异步结果?我以为玩!如果我执行一些计算密集型任务或对数据库进行一些繁重的查询,将会阻塞。关于基准测试:我使用play start 运行应用程序,并根据这篇文章进行了一些微调:jamesward.com/2012/06/25/…
-