当前位置:  开发笔记 > 编程语言 > 正文

Scala如何在群集上扩展?

如何解决《Scala如何在群集上扩展?》经验,为你挑选了3个好方法。

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



1> Viktor Klang..:

[免责声明:我在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/
我知道没有移植指南,但是,我们的待办事项列表是让Akka成为Scala Actors的替代品.优点如下:性能(目前快约100%),可以让事务参与者使用STM,管理员层次结构,简单的远程参与者和集群成员资格,内置支持分布式NoSQL存储引擎,如Cassandra,MongoDB和Redis +更多.看看akkasource.org

2> Daniel C. So..:

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

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

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

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


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

3> Felix Lange..:

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

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有