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