玩转框架web应用:什么时候用Akka?

Play framework web application: when to use Akka?

我正在从 Java 过渡到 Scala,并开始使用 Play 作为应用程序服务器。我的 Java 遗留应用程序(我试图替换的应用程序)构建在三个层上:servlet、会话 bean 和实体 bean。我听说 Akka actor 会替换会话 bean,这准确吗?什么时候在 Play web 应用程序中使用 Akka actor 合适?

回答问题的第二部分:

When is it appropriate to use Akka actors in a Play web application?

Scala 不仅仅是语法糖 Java 而是用于编写函数式编程 (FP)。 Scala 使编写函数式代码变得更容易、更明显。当你这样做时,你所有的方法都变成了函数(没有状态变化被保留)。

从这里开始,当您确实想要保存全局状态时,您可以将其封装在一个 Actor 中并仅通过消息队列与其交互。因此您不必担心线程逻辑。

一个很好的入门课程是https://www.coursera.org/course/progfun

Scala 入门的好书是: Cay S. Horstmann 的 Scala for the Impatient

我认为没有像将会话 Bean/实体 Bean 转换为参与者这样的经验法则。

您可能需要查看您的要求。值得考虑actor模型是干什么用的:actor模型是

  • 避免并发访问可变状态的并发模型
  • 使用异步通信机制提供并发性

这很有价值,因为从多个线程使用共享状态变得非常困难,尤其是当共享状态的不同组件之间存在必须保持同步的关系时。

但是,如果您有域组件,其中: 您不允许并发,或者 您不允许可变状态(如在函数式编程中),或者 你必须依赖一些同步通信机制, 那么 actor 模型将不会提供太多(如果有的话)好处。

看看这个 URL 如果你还没有 http://www.infoq.com/news/2014/02/akka-ejbs-concurrency