Concurrency Akka作为Clojure的并发模型

Concurrency Akka作为Clojure的并发模型,concurrency,clojure,jvm,jvm-languages,akka,Concurrency,Clojure,Jvm,Jvm Languages,Akka,看起来Akka框架有很多很酷的东西(我不太了解这个框架,希望能尽快深入了解它)。 是否鼓励在Clojure中使用Akka?在Clojure项目中使用Akka作为并发模型并删除内置设施有意义吗?这取决于您的项目是否已经在使用内置设施。这还取决于您的公司/项目是否首先容忍该想法,是否容忍图书馆的许可条款,以及您/您的团队是否愿意接受社区支持或支付商业支持费用 见: 除此之外,它还取决于您对项目开发人员的偏好、您编写的代码相对于标准设施的可维护性、对库的支持级别、Clojure软件开发社区对库

看起来Akka框架有很多很酷的东西(我不太了解这个框架,希望能尽快深入了解它)。

是否鼓励在Clojure中使用Akka?在Clojure项目中使用Akka作为并发模型并删除内置设施有意义吗?

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

见:

除此之外,它还取决于您对项目开发人员的偏好、您编写的代码相对于标准设施的可维护性、对库的支持级别、Clojure软件开发社区对库的接受程度等

我的建议是对其进行评估,并将概念验证原型与您正在考虑的所有技术进行比较

在向项目中添加任何第三方代码时,这种建议都是适用的


盲目地接受他人的意见可能会花费您大量的时间、精力、金钱以及其他开发人员的支持。

Clojure在处理并发性方面有很多内置支持。除非你真的需要演员,否则没有必要在你的项目中加入演员库。您的问题没有详细说明系统的体系结构或设计,因此我无法真正说明您的项目是否需要参与者,但我肯定不会直接讨论它。首先看一下Clojure的代理和其他并发原语。它们应该非常适合你的需要


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

项目为Clojure带来了轻量级线程、CSP和类似Erlang的actor。

请注意,我对Clojure或该库知之甚少,但我在多个项目/公司宣传并接受了第三方图书馆。希望这有帮助:)这是有史以来最专业、最实用的建议之一。Clojure不支持发行,对吗?因此,如果您想扩展到多台机器,那么在Clojure中该怎么办?有一个“Clojure的actors库,以Erlang OTP平台为模型。”(Erlang是akka的灵感来源???)没错,不支持分发。大多数时候,人们认为他们需要分发,最终陷入了演员的混乱,而他们真正需要的只是一个队列或一些简单的东西。并非每个人都是这样,但这是一个常见的情况:)@Viktor-在Clojure中有多种分发方式,它们只是在库中提供,而不是在核心语言中提供。Zach Tellman的Aleph框架可能是最有趣的——但当然,即使Scala也没有在语言中内置发行版。