ruby-on-rails-3 – 为API后端选择应用服务器
对于应用程序服务器(Passenger,Thin,Unicorn,Mongrel,Puma和Rainbows!)有这么多选择,我想知道什么适合以下场景:
Rails纯粹用于API后端(所有资产都与Nginx一起提供).某些API调用依赖于其他API服务,因此有时需要一段时间才能完成. 响应式应用程序用于移动,平板电脑和桌面客户端,因此无法保证客户端的连接. 在这种情况下,您认为哪种应用服务器是合适的?选择时应该考虑哪些事项? 解决方法
如果您的应用程序对其他服务进行API调用,那么Unicorn是一个糟糕的选择. Unicorn是一个单线程多进程应用程序服务器,专为快速,短期运行的CPU绑定工作负载而设计.进行HTTP API调用会计入长时间运行的阻止I / O请求.这不是限制,而是Unicorn的明确设计选择.这已在
the Unicorn website“部分案例中更糟糕”一节中得到证实.
理论上,Thin可以处理这种高并发工作负载,因为它使用了事件I / O.但是,这需要以事件代码的形式提供明确的框架和应用程序支持.很少有框架和应用程序这样做. Rails和Sinatra没有. 因此,这只留下支持多线程的应用程序服务器.三个竞争者是Puma,Rainbows和Phusion Passenger 4 Enterprise. >彪马相对较新.彩虹略长,但作者不保证它是否运作良好.乘客的Phusion成熟,已存在多年,目前正在使用的超过15万网站,包括路数,如皮克斯,纽约时报,发现生活怎样,等等. 您可能还对this writeup感兴趣以获取更多信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |