写点什么

在 LinkedIn 的 Ruby on Rails 和 Node.js 对决

  • 2012-10-10
  • 本文字数:1197 字

    阅读完需:约 4 分钟

鉴于性能和可扩展性方面的原因,LinkedIn 前段时间将其移动设施的后台从 Ruby on Rails 替换成了 Node.js。LinkedIn 团队的一位前成员根据其自身的认识, 对此做出了回应并解释了问题的原委。

LinkedIn 移动工程部门的总监 Kiran Prasad 对 ArsTechnica 说,他们必须重新考虑为LinkedIn 客户移动设备提供服务的后台设施,原因在于尽管只有7-8% 的用户使用他们提供的移动应用程序,但Ruby on Rails 的后台就已经陷入可扩展性问题了。

LinkedIn 评估了三种可行的解决方案:Rails/Event Machine,Python/Twisted 以及 Node.js。按照 Prasad 的说法,Node.js 之所以最后被选中,是因为它提供了一些好处:

  • 更高的性能,在特定场景下 Node.js 能比 Rails 快 20 倍
  • 使用 3 个服务器而不是 30 个就能应对 10 倍的流量增长
  • 前端工程师能够进行后端代码的开发,两个团队实际上合二为一了。

LinkedIn 因为可扩展性舍弃 Rails 的事情在网络上引起了一些反响。LinkedIn 移动团队的一位成员 Ikai Lan 分享了在技术选择方面以及所面临的问题上的一些个人经历

我们选择的是 Ruby on Rails 1.2 版本而部署技术是 Mongrel 。别忘了,这是 2008 年。Mongrel 是 Ruby 的前沿技术。 Phusion Passenger 还没有发布(在此很久才发布的)而 Mongrel 比 FastCGI 早了很多很多年。Mongrel 的问题是什么?它是单线程的。它认为传输速度比 CPU 的效率更重要,这一点我认同。…我们使用 Capistrano 部署,并且是较早使用 nginx 的。…

(后来)我们升级到了 Rails 2.x+ … 并且使用 OAuth 来对 iPhone 客户端进行认证。基于 3-Legged OAuth,我们将 Rails 服务器转化成了 OAuth provider。为什么使用 3-legged OAuth?很简单:我们并不知道自己在做什么。我必须承认这一点。

为移动设备提供服务的服务器托管在 Joyent 上。所以按照 Lan 的说法,当移动应用需要信息时,请求要先发到 Joyent 上,然后再连接提供主 API 服务的 LinkedIn 数据中心:

伙计们,这是一个跨数据中心的请求。运行在单线程的 Rails 的服务器上(每个请求都会阻塞主程序),运行 Mongrel,内存泄露得像筛子(这主要是 gettext 的问题)。Rails 也做过一些事情,像翻译、将 XML 转换成 JSON,我们还在它上面测试了一些针对于移动设备的特性,但除此以外,它并没有做太多的事情。它仅仅比代理强一点。这个代理的最大并发数取决于我们运行了多少了单线程的 Mongrel 服务器。每个 Mongrel 经常要膨胀到 300Mb 的 RAM,所以我们不能大量运行它。

在指出了一系列问题后,Lan 最终承认“v8 确实相当快”但是他还说:“不要认为在构建下一项技术方案的时候必须用 node.js。在移动应用的服务器端,它确实是比 Ruby on Rails 更适合,但是它并不是性能的灵丹妙药。你正在比较的是一种较低级别的服务器和一种一站式的 web 框架。”

关于这个使用 Node.js 取代 Rails 的决定,Hacker News 上有很长的反响讨论

查看英文原文: Ruby on Rails vs. Node.js at LinkedIn

2012-10-10 21:126981

评论

发布
暂无评论
发现更多内容

日立携手APIX启动绿色金融创新挑战赛:征集创新绿色融资解决方案

财见

华为云Flexus数字人超低门槛!双十一轻松实现数字人自由

平平无奇爱好科技

品牌营销新路径!双十一华为云Flexus数字人内容输出更高效

平平无奇爱好科技

《Django 5 By Example》阅读笔记:p339-p358

codists

Python django

构建高效AI工作流:打造灵活自动化的分步指南

代码忍者

鸿蒙NEXT开发案例:温度转换

zhongcx

RGB/INT8 输入注意事项

地平线开发者

自动驾驶 算法

超简单、超高性价比的数字人!双十一华为云数字人Flexus特惠亮相

平平无奇爱好科技

Scheduled线程池实践

FunTester

双十一入手数字人!华为云Flexus数字人3大优势赋予硬核体验

平平无奇爱好科技

伟创力完成对Crown Technical Systems公司的收购

财见

传媒行业必备!双十一购买华为云Flexus数字人后,我总结了3大优势

平平无奇爱好科技

史上最强悍的Mate来啦!开场曲《怒放的生命》AiMax版独家上线华为视频

最新动态

专为中小型企业设计!双十一华为云Flexus数字人性价比更高

平平无奇爱好科技

霍尼韦尔拟将个人安全防护设备业务出售给PIP公司

财见

百元投入即可拥有“数字人”!双十一华为云Flexus数字人更超值

平平无奇爱好科技

传媒行业必备!双十一购买华为云Flexus数字人后,我总结了3大优势

平平无奇爱好科技

即购即享,制作简单!双十一轻松入购华为云Flexus数字人

平平无奇爱好科技

超简单、超高性价比!双十一华为云Flexus数字人轻松上手

平平无奇爱好科技

快来获取“数字员工”!双十一华为云Flexus数字人不到千元

平平无奇爱好科技

企业必看:10款知名的公司内部网盘推荐

易成研发中心

如何通过高效的缓存策略无缝加速湖仓查询

镜舟科技

开源 StarRocks Data Cache

双十一站在中小企业的角度,谈谈我为什么选择华为云Flexus数字人

平平无奇爱好科技

双十一我为什么选择华为云Flexus数字人?广告输出更高效率、更有创意

平平无奇爱好科技

升级原生鸿蒙即可领近千元权益!华为Mate70和MateX6到手即可升级

最新动态

直播预告丨大模型+知识库(RAG):如何使能行业数智化?

平平无奇爱好科技

双十一华为云Flexus数字人性价比有多高?百元投入即可轻松入手

平平无奇爱好科技

在LinkedIn的Ruby on Rails和Node.js对决_Ruby_Abel Avram_InfoQ精选文章