2010-05-25 90 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