四,应用服务器对比

     在这一章中,我会比较我提过的大多数服务器,但不包括 Phusion Passenger。Phusion Passenger 和其他的不一样,我会单独开出一章。我还会忽略 Trinidad 和 TorqueBox,因为我对他们不是很了解,只有你用到 JRuby 的时候才会涉及到他们。

Mongrel  只有最基础的功能。像之前提到的,Mongrel 仅仅是单线程、多进程,所以它只用于集群(cluster)中。没有进程监控,意味着如果集群中一个进程崩溃了,则需要手动重启。人们需要使用额外的进程来照看 Mongrel,比如 Monit 和 God。  

Unicorn  是从 Mongrel 中fork出来的。支持监控一定数量的的进程:如果一个进程崩溃了,则会被主进程自动重启。它能让所有进程都监听同一个共享的socket,而不是每个进程使用单独的socket,这会简化反向代理的配置。像Mongrel一样,Unicorn 是单线程、多进程。

Thin  利用 EventMachine 库,实现基于事件的 I/O 模型。它并不是使用 Mongrel 的 HTTP 解析器,没有基于 Mongrel。它的集群节点没有进程监控,所以你需要去监控进程是否崩溃。每个进程监听各自的socket,不像 Unicorn 一样共享socket。理论上来说,Thin 的I/O 模型允许高并发,这也是 Thin 被应用的大部分场合。一个 Thin 的进程只能处理一个并发请求,所以你还需要集群。关于这个古怪的性质,更多内容参见“I/O并发模型”。来!自~优尔论-文|网www.youerw.com

Puma  也是从 Mongrel 中fork出来的,但和 Unicorn 不一样的是,Puma 是基于多线程,使用 Thread Pool 实现。因为 GIL 的存在,所以 MRI 不能利用多核实现CPU并行,所以你需要特别确认的是你能利用多核。更多内容参见“I/O并发模型”。

Rainbows  通过给不同的库实现多种并发模型 。

五,Phusion Passenger

     Phusion Passenger 和其他的不一样。他直接融入 Apache 或者 Nginx,类似于 Apache 的 mod_php。就像 mod_php 使 Apache伺服 PHP 应用一样, Phusion Passenger 也可以使 Apache 或者 Nginx 伺服 Ruby 应用。Phusion Passenger 的目标是所有的事情做起来尽可能地减少麻烦。

     如果使用 Phusion Passenger的话,你不需要为你的应用启动一个进程或者集群,为 Apache/Nginx 配置静态目录,或者设置反向代理。

上一篇:PHP动态建模英文文献和中文翻译
下一篇:变频器在供水控制系统的应用英文文献和中文翻译

数控机床制造过程的碳排...

新的数控车床加工机制英文文献和中文翻译

抗震性能的无粘结后张法...

锈蚀钢筋的力学性能英文文献和中文翻译

未加筋的低屈服点钢板剪...

台湾绿色B建筑节水措施英文文献和中文翻译

汽车内燃机连杆载荷和应...

LiMn1-xFexPO4正极材料合成及充放电性能研究

网络语言“XX体”研究

张洁小说《无字》中的女性意识

麦秸秆还田和沼液灌溉对...

互联网教育”变革路径研究进展【7972字】

老年2型糖尿病患者运动疗...

安康汉江网讯

新課改下小學语文洧效阅...

我国风险投资的发展现状问题及对策分析

ASP.net+sqlserver企业设备管理系统设计与开发