Java 并发性:使用Play框架/Akka设计restapi

Java 并发性:使用Play框架/Akka设计restapi,java,rest,concurrency,playframework-2.0,akka,Java,Rest,Concurrency,Playframework 2.0,Akka,我是一个比较新的游戏框架。我正在尝试设计一个“测试/测验/考试”应用程序。它主要由多个表上的少量CRUD操作组成(现在)。它有一个 基于REST的后端-->AngularJS前端 假设对于format/users/{id}的GET请求,映射了以下代码 public Result getUser(Long id) { // Get Info from DB using Spring Data JPA and return result. } 现在,当我遇到Akka-Actor模型时,是

我是一个比较新的游戏框架。我正在尝试设计一个“测试/测验/考试”应用程序。它主要由多个表上的少量CRUD操作组成(现在)。它有一个 基于REST的后端-->AngularJS前端

假设对于format/users/{id}的GET请求,映射了以下代码

public Result getUser(Long id)  {
    // Get Info from DB using Spring Data JPA and return result.
}
现在,当我遇到Akka-Actor模型时,是否最好重新编写getUser函数,以便它将工作委托给Actor,Actor从数据库检索数据并返回数据。对于其余的CRUD操作,我也应该遵循参与者模型吗?。或者在这里对用户Akka来说是一种过度杀伤力(假设游戏考虑了每个请求的并发性)。仅供参考,我刚开始调查阿卡


设计技巧将不胜感激。

在这里使用Akka有点过分,因为Play处理请求间并发,并且根据您对问题的描述,您似乎没有任何请求内并发(这是您使用Akka的地方,例如,如果您正在进行1000个独立的数据库查询,那么您可以将这些查询分发给十几个参与者或类似的内容)。如果您只想使播放操作异步,请参阅文档。

当您指的是“1000 db查询”时你是说每个请求1000个查询,还是每个请求1000个查询进行一个db查询?根据我的场景,我应该让我的游戏动作异步吗?亚伯拉罕·丹尼尔:默认情况下,游戏动作实际上是异步的。无论操作代码返回结果还是承诺,这两种返回的对象在内部的处理方式都是相同的。只有一种操作是异步的,而不是两种(同步操作和异步操作)。“看@AbrahamDaniel,我的意思是一个请求发出1000个查询;每个请求发出一个查询,1000个请求都可以通过游戏得到很好的处理,没有必要让Akka的事情复杂化