14

Erlang 在处理大量消息和请求方面享有盛誉。我没有时间下载并尝试深入了解 Erlang 先生对切换理论的理解......所以我想知道是否有人可以教我(或指向一个好的教学网站。)

假设作为一个思想实验,我想将 Erlang ejabberd 移植到 Python 和 C 的组合中,以一种给我相同的速度和可扩展性的方式。我必须理解和实施哪些结构或模式?(Python 的 Twisted 是否已经这样做了?)

4

4 回答 4

14

函数式语言(特别是 Erlang)如何/为什么能够很好地扩展?(讨论原因)

http://erlang.org/course/course.html(用于教程链)

至于移植到其他语言,使用大多数现代语言很容易实现消息传递系统。获得函数式风格可以在 Python 中轻松完成,尽管您不会“免费”获得 Erlang 的内部调度功能。Stackless Python 可以复制 Erlang 的大部分并发特性,虽然我不能说细节,因为我没有太多使用它。If 确实看起来更“明确”(因为它要求您在 Erlang 的设计允许内部发生并发的地方定义代码中的并发)。

于 2009-02-05T16:15:35.677 回答
4

Erlang 不仅是关于可扩展性,而且主要是关于

  • 可靠性
  • 软实时特性(由软实时 GC 启用,这是可能的,因为不变性 [无循环] 并且不共享任何内容等)
  • 并发任务的性能(廉价的任务切换、廉价的进程生成、参与者模型……)
  • 可扩展性 - 在当前状态下值得商榷,但发展迅速(大约 32 个核心,它比大多数竞争对手要好,但在不久的将来应该会更好)。
于 2009-02-05T17:42:18.483 回答
2

erlang 的另一个影响可伸缩性的特性是轻量级廉价进程。由于进程的开销很小,erlang 可以产生比大多数其他语言更多的进程。与许多其他语言相比,您使用 erlang 进程可以获得更多的收益。

于 2009-02-08T02:20:28.327 回答
1

我认为 Erlang 的最佳选择是网络绑定应用程序 - 使节点之间的通信更加简单,并且诸如心跳监控、使用主管自动重启等功能都内置在 OTP 中。

于 2009-02-27T13:43:58.223 回答