Erlang 作为后端进程
Posted
技术标签:
【中文标题】Erlang 作为后端进程【英文标题】:Erlang as a backend process 【发布时间】:2010-10-29 13:46:48 【问题描述】:我想使用 Erlang 进行一些后台处理和 Web 应用程序的东西。我阅读了它的并发处理和东西,我已经开始学习它。我特别想做的是使用 COMET 与客户端建立持久连接——Erlang 进程协调 HTTP 客户端连接。
-
我需要一个基于 Erlang 的 Web 服务器吗?
对于实际实现,Erlang 中的“spawn”是如何工作的。我下载了 erlang 电子书并阅读了有关产卵的信息。对于我的基于 Web 的脚本,当两个客户端通过发出 HTTP 请求连接到同一个 Erlang 脚本时,我可以自动为每个客户端“生成”新线程并进行消息传递吗?
【问题讨论】:
【参考方案1】:-
不,你没有,但这是最简单的方法。您可以将 Erlang 与
libevent
结合使用,以实现更多 http://www.metabrew.com/article/a-million-user-comet-application-with-mochiweb-part-3/
是的,生成新客户端很便宜,如果您想更便宜,请参阅上文。
【讨论】:
【参考方案2】:我强烈建议使用基于 erlang 的网络服务器来处理彗星连接。 erlang 中的轻量级进程是将它用于此类事情的一半好处。
大多数 erlang 网络服务器框架都会为您处理生成。无需自己重新实现。请参阅 nitrogen 和 mochiweb 了解非常简单的彗星实现示例。
【讨论】:
【参考方案3】:你看到http://beebole.com/erlang这个页面了吗?
它包含:
如何在 Ubuntu 上设置 Erlang 环境(使用 Mochiweb)
如何安装 nginx 网络服务器
使用 Erlang 构建小型 Web 应用的视频教程
【讨论】:
【参考方案4】:您应该研究“YAWS”(高性能 HTTP 服务器)模块:易于编写,完全灵活。 YAWS 很容易安装:apt-get install yaws(至少在 Ubuntu 上)。
【讨论】:
【参考方案5】:另一种选择是使用Nitrogen - 这允许在网页中轻松集成 Erlang 代码,包括成熟的网络服务器和彗星。
【讨论】:
以上是关于Erlang 作为后端进程的主要内容,如果未能解决你的问题,请参考以下文章