我们将使用Clojure编写一个并发程序,该程序将从大量传入邮件中提取关键字,并与数据库进行交叉检查。
我的一个队友建议使用Erlang来编写这个程序。
在这里,我想指出一些我是函数式编程新手的事情,所以我有点怀疑clojure是编写这个程序的好选择,还是Erlang更适合。
发布于 2011-06-06 00:46:57
这两种语言和运行时采用不同的并发方法:
您需要分析您的应用程序以确定哪种模型最适合您。这也可能取决于您使用的外部工具--例如,数据库处理并发请求的能力。
另一个实际考虑事项是clojure在JVM上运行,JVM上有许多开源库可用。
发布于 2011-06-07 02:18:07
你真的是指并发还是分布式?
如果你指的是并发(多线程、多核等),那么我会说Clojure是自然的解决方案。
如果你指的是分布式(即许多不同的机器通过网络共享工作,这些机器实际上是作为独立的进程运行的),那么我会说Erlang是更自然的解决方案:
目前默认情况下没有这样的框架。
从长远来看,我希望Clojure开发一个与Erlang匹配的分布式计算框架--这样您就可以两全其美了!
发布于 2011-06-06 00:27:42
Clojure是在Java JVM上运行的Lisp。Erlang从一开始就被设计成高度容错和并发的。
我相信这项任务可以用这两种语言中的任何一种以及其他许多语言来完成。您的经验将取决于您对问题的理解程度以及对语言的了解程度。如果你对这两个都是新手,我想说无论你选择哪一个,这个问题都将是具有挑战性的。
你有没有想过像Lucene/Solr这样的东西?这是一个很棒的索引和搜索文档的软件。我不知道“交叉检查”对你的上下文意味着什么,但这可能是一个很好的解决方案。
https://stackoverflow.com/questions/6244170
复制相似问题