【分享】浅析Quora的技术架构 狼人:

摘要:
Quora是一个社交问答网站,最近很受欢迎。国内外许多团队都在学习、模仿和研究Quora的技术架构。Quora的团队规模不大。只有十多个人从事技术工作。如此紧凑的团队使用了如此多的技术和产品,以至于许多人都是多才多艺的。Quora解释说,Facebook选择PHP并不是最好的选择,但有历史原因。Quora的技术团队在研究了多种语言后选择了Python。当然,原因有很多。总的来说,这不是很激进。Comet服务器使用Tornado处理Longpolling和Push更新。Tornado是前FriendFeed技术团队的开源产品。

【CSDN.NET整理】社交问答网站Quora最近相当火,很多国内外的团队都在学习、模仿和研究Quora技术架构。之前的一篇Quora’s Technology Examined对此进行了解读,国内丁香园网站技术总监冯大辉也据此发布了一篇《Quora用了哪些技术》,从云计算服务、Web层与CMS、为什么用Python作为主开发语言、通信处理、实时搜索、数据持久层等几个方面进行了分析。

在冯大辉看来:创始人查理·奇弗(Charlie Cheever)与亚当·德安杰洛(Adam D'Angelo)之前都在Facebook ,所以,Quora的技术有不少Facebook的基因。Quora的团队规模并不大,做技术的只有十余人而已,这么紧凑的团队利用了这么多的技术与产品,很多人都是多面手了。这是国内技术团队需要向国外同行学习的地方。

而在开发语言方面有意思的是,从Facebook出来的团队居然用了Python作为主要开发语言。Quora对此有所解释: Facebook选择PHP也并非是最佳选择,而是有历史原因。Quora技术团队在考察了多个语言之后选择的Python ,当然理由有一大堆,总体看来,并非很激进。

Quora在后端通信上使用的是Facebook开源出来的Thrift,除了开发接口简单之外,可能更为熟悉也是一个因素。Comet服务器使用的是Tornado,用以处理Long polling以及 Push更新,Tornado是前FriendFeed技术团队开源的产品。

另一方面,国内酷壳网的陈皓在发表了Stack Exchange的系统架构Facebook的系统架构之后,日前他又发表了《Quora使用到的技术》一文,对Search-Box、实时查询、Webnode2和LiveNode、Amazon Web Service、HAProxy Load-Balancing、Python、Thrift、Tornado、Long Polling (Comet)、MySQL、Memcached、Git、JavaScript Placement等相关技术在Quora中的应用进行了更为细致的分析。

而作为仅仅使用了黑色、红色和大量文字元素,号称设计元素最少的流行网站,Quora第一名员工、产品设计师Rebekah Cox在Web2.0大会上则分析了Quora的产品设计原则,并将其演讲内容发布在【这里】

所有这些,对于国内的技术尤其是创业团队都有着很好的借鉴意义。

免责声明:文章转载自《【分享】浅析Quora的技术架构 狼人:》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MINIUI grid学习笔记如何防止HTTPS 证书被伪造下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SaaS到底是什么

       SaaS(Software-as-a-Service),字面意思:软 件 即 服 务, 即通过网络提供软件服务。          SaaS平台供应商将应用软件统一部署在自己的服务器上,客户可以根据工作实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得Saas平台供应商提供的服务...

react源码解析7.Fiber架构

react源码解析7.Fiber架构 视频课程(高效学习):进入课程 课程目录: 1.开篇介绍和面试题 2.react的设计理念 3.react源码架构 4.源码目录结构和调试 5.jsx&核心api 6.legacy和concurrent模式入口函数 7.Fiber架构 8.render阶段 9.diff算法 10.commit阶段 11.生命...

Dataset利用xsd读取xml,数值类型处理及验证

应该会有很多场景需要从xml文件读取数据,填充一个dataset。机器上没装数据库,个人觉得最好简便方法就是定义一个xml文件,模拟数据。默认,xml在datatable中的值都是字符串类型(Excel中输入数字,就知道是数值型)。如果需要dataset在调用readxml方法的时候,把是什么类型(比如xml中本意是整型,时间类型)自动转换成什么类型方便,...

Tier和Layer

在实际开发工作中。我们经常听到“架构设计”和“架构师”这种名词,它并不新奇和神奇,可是却非常少有人对“架构”有全面的了解和认识。更谈不上掌握了。事实上,也仅仅有极少数人能成为或者被冠以“架构师”这种title。为此。笔者总结了实践中对架构的一些理解,希望能够补充非常多人对此认识上的不足,纠正一些误解。 架构的分类 对于“架构”来讲。理论上划分了5种架...

第五部分 软件架构

第15章 什么是软件架构 如果想设计一个便于推进各项工作的系统,其策略就是要在设计中尽可能长时间地保留尽可能多的选项。 开发(Development) 部署(Deployment) 运行(Operation) 维护(Maintenance) 保持可选项 设备无关性 优秀的架构师会小心地将软件的高层策略与其底层实现隔离开,让高层策略与实现细节脱钩,使其策...

两种常见的mysql集群架构

常见的mysql集群架构 根据业务发展阶段和业务代码部署情况不同,对于扩展单数据库可以使用以下几种部署架构模型 单地域高可用架构 单地域高可用架构的构成 dbproxy数据库代理: 主要处理:读写分离,主从切换等。 主库(高可用):处理业务写流量。 从库(多实例,可选高可用):处理业务读流量。 单地域高可用的架构可以处理 业务流量在单地域的的业务结...