从我目前阅读的所有关于 Mochiweb 的文章中,我一遍又一遍地听说 Mochiweb 提供了非常好的可伸缩性。我的问题是,Mochiweb 究竟是如何获得其可扩展性的?是来自 Erlang 固有的可扩展性属性,还是 Mochiweb 有任何额外的代码可以明确地使其能够很好地扩展?换句话说,如果我自己用 Erlang 编写一个简单的 HTTP 服务器,用一个简单的“循环”(递归函数)来处理请求,它是否具有与使用 Mochiweb 框架构建的简单 Web 服务器相同级别的可扩展性?
更新:我不打算实现支持所有可能功能的完整网络服务器。我的要求非常具体 - 处理来自具有固定控件的 HTML 表单的 POST 数据。
最佳答案
可能吧。 :-)
如果您要编写一个 Web 服务器,在单独的进程(Erlang 中的轻量级线程)中处理每个请求,您可以轻松实现相同类型的“可扩展性”。当然,功能集会有所不同,除非您实现 Mochiweb 的所有功能。
Erlang 还内置了对在多台机器之间进行分发的强大支持,这可能会获得更大的可扩展性。
关于http - Mochiweb 的可扩展性特性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2903355/