消息传递分布式算法框架
我最近上了一门关于分布式计算的课程,学习了像一致性、选举领导者等问题的分布式算法,现在我想实现其中的一些算法。 这些分布式算法是为一群独立的进程设计的:每个进程都在运行一个算法的实例,并且这些进程可以通过发送消息(通过网络)相互通信。 这些消息里面包含了一些序列化的数据;像远程过程调用(RPC)这种“炫酷”的功能对我来说并不是特别有趣。
有没有一些比较稳定的框架,可以用来在像Python、Haskell、Clojure等高级语言中实现这种消息传递的算法?(我知道Cloud Haskell,但目前看起来还处于测试阶段。)
1 个回答
1
Erlang绝对是个不错的选择。发送消息的功能直接内置在语言里,所以你不需要额外设置或学习其他框架。我正在攻读分布式系统的硕士学位,我们在转向Java或C和MPI之前,必须用Erlang实现很多不同的算法。
这门语言是函数式的,语法有点像Prolog,如果你知道Prolog的话,可能会觉得有点奇怪。此外,它在所有平台上都能顺利运行(Windows、Linux、OS X)。
在erlang.org上的文档(http://www.erlang.org/doc.html)已经非常不错了,但如果你想快速了解一下语法的基本用法,可以看看我导师的一份文档:Erlang - functional programming in a concurrent world - 这是一份包含37张幻灯片的PDF文档。看完之后,你应该就能写出你的第一个应用程序了。