摘要:这不是代表孰优孰劣,但LinkIn从Node替换Rails取得了不俗的性能提升,硬件的利用率提升了10倍。客观的说,将2008年与2012年的产品进行对比本身就不公平,曾经在LinkedIn工作的工程师蓝奕凯发表了博文,对使用Rails那段历史进行了说明,他并不认为Node是提升性能的灵丹妙药。
Ryan Paul写过一篇《深入观察LinkedIn移动端的设计》,在其中我们看到:有23%的移动用户;专注朴素、易用以及可靠性;30%原生代码,70%使用HTML;嵌入轻量的HTTP服务;单一的客户端应用链接云服务器;后端服务从Rails转换到Node.js。
曾经在LinkedIn工作的工程师蓝奕凯补充道:移动促使产生了跨数据中心应用。运行在单线程的Rails服务器上(每一个请求都会降低整体性能),使用Mongrel,将会浪费大量内存。这解释了为什么任何没有阻拦的方式会赢得青睐。
Node.js的优势在于:
- 更好的性能以及更少的内存占用,在某型情景下性能提升20倍
- 程序员可以充分发挥他们JavaScript的技巧
- 前端与后端开发人员可以在一个小组内协作
- 服务器从30台减少到只有3台,硬件资源利用率提升10倍,并且还有提升的空间。
- 开发工作可以更加专注在应用开发,而不是到处去救火
很显然,有大量的问题交织在一起。我们需要重写代码,改变服务器与客户端的分布式逻辑,为了优化我们有大量需要争论的地方。但可以确信,LinkedIn选择Node.js获得了巨大成功。
在文章的评论部分看到一些有趣的分析,我特别喜欢oluseyi的评论:
不可避免的我们要重构并重写,我们积极的使用缓存,储存客户端的范本(并不可避免的从服务器更新数据)。这意味着一旦时间戳要求更新缓存,应用程序就需要从服务器一致性过滤器更新数据,而不是通过打开又关闭若干个连接。我们希望建立一条长寿命的连接,用来传输数据。(同样的,原来的执行将会返回HTML代码,这意味着包括图像的URI地址等在内的链接都将指向服务器。同时,由于web浏览将会建立和销毁导航,这些图像并没有有效的缓存。)
在长寿命链接的方式下,在传统的MVC("Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。)web应用程序不再有“查看”这一概念。最终的结果是,在服务器端的控制器将会聚集所有必要的数据,但这些数据并不会直接输出,而是通过输出二进制对象,并被客户端拆包提取所有有关的数据。
我注意到你很关心MVC被过度滥用,只在特定的web应用程序相关环境才适合应用。用户的web端(标记输出,包括外部的URL等等,都需要重新处理)将提取拆包的数据和缓存数据产生。
Update:本文在Hacker News引起了大量争议,欢迎纠错、评论。
分享到:
相关推荐
总的来说,“前端开源库-node-linkedin”是前端开发人员连接LinkedIn API的有力工具,通过它,开发者可以轻松地将LinkedIn的功能整合到自己的应用中,提升用户体验,同时拓展业务边界。记住,使用任何开源库时,一定...
5. LinkedIn 从 Ruby on Rails 迁移到 Node.js,通过异步系统提升了性能和可扩展性,减少了服务器数量,同时流量服务提升一倍,应用程序运行速度提高2-10倍。 6. Yahoo 在 Node.js 发布不久后就开始使用,75%的网络...
Linkedin-scraper-js 解析公共 LinkedIn 个人资料并将其作为 json 对象返回的 node.js 服务器 跑步: node server/linkedin-scraper 标志: -p : Port -u : Public url to scrape -u : Cache time
NodeJS工具导出Linkedin数据 安装 git clone https://github.com/nhduy1985/linkedin-export-tool.git cd linkedin-export-tool npm install 配置 mkdir export cp config.json.dist config.json vim config.json ...
LinkedIn 自动连接工具 有时您想要更多的LinkedIn连接,尤其是500+ 。 此工具非常有助于增强您的联系。 只需从您最喜欢的终端或命令提示符运行它并保持运行,直到您发出足够的连接请求。 一种自动化工具,用于自动...
oauth2-linkedin 使用Node.js的服务器端Oauth2 LinkedIn登录概述设置/配置您的发送=>(重定向)用户到linkedin.com登录和/或授权URL: 接收=> code并state然后使用它们获取访问令牌: 接收=> token并使用它对用户...
### 《Node即学即用》Node, Up and Running 原版 #### 书籍概述 本书由Node.js领域的专家Tom Hughes-Croucher 和 Mike Wilson共同撰写,旨在为读者提供全面且深入的理解Node.js及其应用的方法。Node.js作为一种基于...
LinkedIn接口API调用实例是一个关于如何与LinkedIn的开发平台交互的实际应用示例。LinkedIn API允许开发者访问LinkedIn的数据,包括用户信息、公司数据、职位发布等,以便构建与LinkedIn相关的应用程序和服务。下面...
该扩展程序可帮助您从简单的CSV文件自动添加LinkedIn用户。 该扩展程序可帮助您从简单的CSV文件自动添加LinkedIn用户。 支持语言:English
一个非常易于使用的浏览器扩展,用于将您的完整LinkedIn个人资料导出到JSON Resume文件或字符串。 Chrome扩展程序 :package: - 我的LinkedIn个人资料 :man::briefcase: 用法/安装选项: 有(或曾经有)一些不同的...
因此,您可以在服务器上使用它。 以JSON格式返回结构化数据。 将于2020年投入使用。 该抓取工具将提取公开可用的数据: :artist_palette: 个人资料:名称,标题,位置,图片,描述和网址 :briefcase: 工作...
Coursera 课程推荐使用 LinkedIn 数据。 申请链接: : : 简短的介绍: 课程推荐应用程序将使用他的 LinkedIn 技能和 Stack Overflow 的趋势技能来推荐 Coursera 的用户课程。 我们还为用户提供使用趋势技能的统计...
Rails,你需要安装 Ruby、Rails、Node.js 和 PostgreSQL(或其他支持的数据库)等必要工具,然后执行 `bundle install` 安装依赖,`rails db:migrate` 创建数据库结构,最后用 `rails server` 启动本地服务器进行...
为什么这个 ? 您可能需要对您的linkedin 网络进行分析/监控。 我个人使用它来更好地可视化我的网络并对其进行一些数据分析。如何使用您必须通过在其中创建...您必须确保您的 Neo4j 服务器已启动 PS:此脚本基于工作
**Node.js LinkedIn API 模块** Node.js 是一个流行的 JavaScript 运行时环境,它允许开发者在服务器端执行 JavaScript 代码。在这个环境中,`node-linkedin-api` 是一个专为与 LinkedIn API 进行交互而设计的模块...
非官方LinkedIn API的文档和库。 截至2015年5月19日, 取消了其开发人员计划。 只留下了少量相当有趣的API调用。 此处详细信息 该项目记录了使用的API。 它提供了对大多数原始API以及从未使用过的各种端点的访问。...
LinkedIn Spider 是一个开源项目,专为爬取LinkedIn网站上的公开信息而设计,特别是针对特定公司的员工资料。这个爬虫能够帮助研究人员、数据分析师或者招聘人员批量获取与指定公司相关的LinkedIn用户资料,以便进行...
Airtable LinkedIn 联系进口商 这是一个在 LinkedIn 个人资料页面上运行的 Chrome 扩展程序,允许将一些个人资料数据导入上的给定“联系人”表。 我建立这个是因为 LinkedIn 已经关闭了他们的 API(不酷!)并决定...
【LinkedIn的出色表现和独特优势】 LinkedIn作为一家专业社交网络平台,在众多社交网站中脱颖而出,不仅在股票表现、财务业绩和商业模式上超越了其他竞争对手,如Facebook和Groupon,而且在用户增长和市场定位上...
- **LinkedIn**:LinkedIn 报告称,在采用 Node.js 后,服务器性能提高了 20 倍,同时节省了 90% 的机器成本。这主要得益于 Node.js 对并发处理的支持以及高效的内存管理。 - **Groupon**:Groupon 表示,在迁移至 ...