Scala如何在群集上扩展?

Zub*_*air 10 erlang scala

我一直在学习Erlang,但我也一直盯着其他技术,比如Scala.有谁知道Scala的多节点性能与Erlang相比如何?

Vik*_*ang 14

[免责声明:我在Akka团队]

我真的很鼓励你好好看看Scala框架Akka

我们真的努力提供一个水平和垂直扩展的平台,并且包含无法启用自我修复系统的平台.

Features: 
   Actors for concurrency
   Software Transactional Memory (STM) for concurrent transactional composition 
   Supervisor hierarchies for fault-tolerance 
   Cluster Membership
   Java API with ActiveObjects (Java Actors sort of)
   Distributed persistence through MongoDB, Cassandra or Redis
   REST support through exposing Actors as JAX-RS endpoints + (Comet/Ajax Push)
   + much much more

希望很快能在邮件列表上见到您!

  • 是的,它是用Scala编写的.至于使用方法,我只知道一家公司,我被允许使用它来"关闭"它们,那就是Flowdock:http://flowdock.com/ (3认同)
  • 我知道没有移植指南,但是,我们的待办事项列表是让Akka成为Scala Actors的替代品.优点如下:性能(目前快约100%),可以让事务参与者使用STM,管理员层次结构,简单的远程参与者和集群成员资格,内置支持分布式NoSQL存储引擎,如Cassandra,MongoDB和Redis +更多.看看akkasource.org (3认同)

Dan*_*ral 7

Scala受Java线程相当重的限制.它不会像Erlang那样按线程数进行扩展.

说白了,忘记在短期内在Scala中运行成千上万的演员.编辑:请参阅下面的评论相反的经验.在我的辩护中,我的意思是成千上万的线程成千上万的演员.

但是,演员不是基础语言的一部分.它们只是一个图书馆,由于Scala的内在优势,它们看起来就像是语言的一部分.这一点的重要性在于演员是可以替代的.Scala有两个重要的替代actor库.最着名的一个是Akka,其他人已经谈过,我只能认为值得认真看待.另一个是Lift的演员,这是另一种方式,通过提供一个更简单(和可靠)的演员实现,满足Lift自己的需求,并没有试图超越它.

另一个有希望的发展是为Scala 2.8增加了分隔的延续.定界延续虽然难以使用,但可以实现非常快速的actor.为了清楚起见,很难用分隔的连续编写库(例如actor),但是这样的库与其他actor库没有任何不同.

  • 丹尼尔 - 正如我在其他地方提到的,我有一个应用程序,有25,000个演员,并且很高兴地运行在3年前的Linux刀片上,在一个线程池上限制为8个线程 (5认同)

Fel*_*nge 5

Scala并非设计为一致的平台(如erlang),因此默认情况下不包含强大的分发功能.scala actor库更像是erlang的语言改装过程模型.有些库提供类似OTP的功能和集群,即Akka.