2010-05-25 69 views
53

我试图找到'正确的'演员实现。我意识到有一堆他们,挑一个有点混乱。就我个人而言,我对远程演员特别感兴趣,但我想完整的概述会对其他人有所帮助。这是一个非常普遍的问题,所以请随时回答你所知道的实现。不同的斯卡拉演员实现概述

我知道下面的Scala Actor实现(SAI)。请添加缺少的。

  • 斯卡拉2.7(差)
  • 斯卡拉2.8
  • 阿卡(http://www.akkasource.org/
  • 电梯(http://liftweb.net/
  • Scalaz(http://code.google.com/p/scalaz/


  • 什么这些SAI的目标用例(轻量级与“沉重的”企业框架)?

  • 他们是否支持远程角色?远程参与者在SAI中有什么缺点?
  • 他们的表现如何?
  • 社区活跃吗?
  • 他们开始有多容易?文档有多好?
  • 它们有多容易延伸?
  • 它们有多稳定?哪些项目正在使用它们?
  • 他们的缺点是什么?
  • 他们的设计原则是什么?
    • 他们是基于线程还是基于事件(接收/反应)或两者?
    • 嵌套接收
    • 热交换进行演员的消息循环
+0

一些有用的答案在http://stackoverflow.com/questions/3357332/which-actor-model-library-framework-for-java/7693638#7693638 – satyagraha 2013-06-29 23:59:28

回答

6

据我所知,只有Scala和阿卡支持远程参与者。

Akka由scalablesolutions提供支持,它为akka提供商业支持和插件。Akka似乎是一个重量级解决方案,它的目标是与现有框架(骆驼,AMQP,JTA,Comet,Spring,Redis)以及STM和持久性的集成。

Akka与Scala相比不支持嵌套接收,但支持对参与者的消息循环进行热门调用,并且具有基于线程和基于事件的参与者以及所谓的“基于事件的单线程”参与者。

3

我意识到,阿卡强制详尽的比赛。所以,即使技术上接受预期的部分功能,该功能也不能是局部的。这意味着你必须立即处理每条消息。

9

截至Scala 2.10,Scala的演员现在已经过时和阿卡演员现在是标准发行版的一部分

+2

http://docs.scala-lang.org/overviews/core/actors-migration-guide.html – 2013-01-20 20:08:17