播放框架Web应用程序:何时使用Akka?

时间:2015-12-28 19:14:45

标签: scala playframework playframework-2.0 akka

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

2 个答案:

答案 0 :(得分:4)

我认为没有任何拇指规则可以将会话豆/实体豆转换为演员。

您可能需要查看您的要求。值得考虑演员模型的用途:演员模型是

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

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

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

如果您还没有http://www.infoq.com/news/2014/02/akka-ejbs-concurrency

,请查看此网址

答案 1 :(得分:1)

回答问题的第二部分:

  

何时在Play网络应用程序中使用Akka actor?

Scala不仅仅是语法上的糖,而是用来编写函数式编程(FP)。 Scala使编写功能代码更容易,更明显。执行此操作时,所有方法都将成为函数(不会保留状态更改)。

从此处,当您想要保持全局状态时,将其封装在Actor中并仅通过消息队列与其进行交互..因此,不必关心线程逻辑。

开始使用此课程的一个很好的课程是https://www.coursera.org/course/progfun

开始使用Scala的好书是: Scala for the Impatient by Cay S. Horstmann