2011-03-25 28 views
4

看起来有很多关于Akka框架的很酷的东西(我不太了解这个框架,希望能尽快挖掘它)。
鼓励在Clojure中使用Akka吗?使用Akka作为Clojure项目中的并发模型并删除内置设施是否合理?Akka作为Clojure的并发模型

回答

11

Clojure有很多内置的支持来处理并发。除非你真的需要演员,否则不需要将演员的libarary带入你的项目。你的问题没有详细说明你的系统的架构或设计,所以我不能说演员是否对你的项目是必要的,但我当然不会跳进它。首先查看Clojure的代理和其他并发原语。他们应该很适合你的需求。

至于Akka(或任何演员库)作为Clojure的并发模型,这不是语言设计的方式。您可以选择为您的应用程序使用演员库,但这不是Clojure语言采用的方法。

+3

Clojure不支持分发,对吧?所以如果你想扩展到多台机器,你在Clojure中做了什么? – 2011-03-25 11:30:32

+0

有一个“Clojure的演员库,模仿Erlang OTP平台。” (和erlang是阿卡的灵感?)https://github.com/antoniogarrote/jobim和http://antoniogarrote.wordpress.com/2010/09/03/jobim-an-actors-library-for-clojure/ – jneira 2011-03-25 12:39:05

+12

这是正确的,不支持分发。大多数时候人们认为他们需要分配并最终陷入一团混乱的演员,而他们真正需要的只是排队或简单的事情。这不是每个人的情况,但这是常见的情况:) – abedra 2011-03-25 12:57:39

4

这取决于您的项目是否已经在使用内置设施。这也取决于你的公司/项目是否容忍这个想法,容忍图书馆的许可条款,以及你/你的团队是否愿意接受社区支持或支付商业支持。

参见:

除此之外,它会回落到偏好项目的开发,代码可维护性你会写VS标准设施,对图书馆的支持程度,Clojure软件开发社区内图书馆的接受程度等。

我的建议是评估它,并使用您正在考虑的所有技术制作比较验证性原型。

这种建议适用于将任何第三方代码添加到项目中的情况。

盲目接受别人的意见可能会耗费您大量的时间,精力,金钱和其他开发人员的支持。

+0

请注意,我对Clojure或这个图书馆知之甚少,但我已经在多个项目/公司中宣传并取得了第三方图书馆的接受度。希望这有助于:) – 2011-03-25 01:53:35

+0

这是有史以来最专业和务实的建议之一。 – Chiron 2011-03-25 02:10:19

1

Pulsar项目为Clojure带来轻量级线程,CSP和类似Erlang的角色。