Quora的用到的一些技术

转载 2012年03月30日 09:43:38

[zt]Quora的用到的一些技术

很多团队都在学习、研究 Quora 。前段时间看到这篇 Quora's Technology Examined ,阐述了 Quora 的技术架构,有一些值得关注的信息,记录并分享一下。

使用云计算服务

Quora 大量使用 Amazon EC2 与 S3 服务;操作系统部署的是 Ubuntu Linux,易于部署和管理;静态内容用 Cloudfront.服务分发,图片先传到 EC2 服务器,使用 Pyhon S3 API 处理后后传到 S3。

从开始就使用云计算服务的的好处是节省了大量人工维护硬件服务器的成本,当然这个做法在咱这片土地上不太可行。

Web 层与 CMS

HAProxy 作为前端负载均衡服务器,反向代理服务器是 Nginx,Nginx 后面则是 Pylons (Pylons + Paste) , 承担动态 Web 请求。

Webnode2 与 LiveNode 这两个内部系统承担创建、管理内容的重任,Webnode2 生成 HTML、CSS 与 JavaScript ,并且与 LiveNode 轻度耦合。LiveNode 的作用用以显示 Web 页面内容。用 Python、C++ 与 JavaScript 写的。特别提到用到了 jQuery 与 Cython。LiveNode 有可能开源。

为什么用 Python?

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

通信处理

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

实时搜索

因为 Sphinx 不能满足实时性方面的要求,Quora 启用了自己开发的搜索引擎,只使用了 Thrift 与 Python Unicode 库,此外没有用别的。Quora 的搜索比较特别,因为要对输入内容做关联并且要做有效提示,所以需要提供更好的前缀索引(Prefix indexing)功能。

Quora 搜索的实现还是挺有技术含量的,对后端的查询请求压力也不小(或许当前的并发请求量还没那么大)。对这个场景,做相关开发的朋友不妨仔细研究一下。如果大体框架类似,那么决定最后生出的因素很可能是那些细节。

数据持久层

大量使用 MySQL 作为存储方案,Memcached 作 Cache 层。没有使用当前比较火爆的 NoSQL 相关产品。Quora 这样做有自己的理由,用户量级没有达到百万的 SNS 站点完全没必要用 NoSQL 的东西。或许以后 Quora 也会启用。

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

--EOF--


Java Web项目开发到底需要掌握哪些技术?

目前, 国内外信息化建设已经进入基于Web应用为核心的阶段, Java作为应用于网络的最好语言,前景无限看好。然而,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情。概括一下,实施Ja...
  • javaniuniu
  • javaniuniu
  • 2016年07月11日 15:06
  • 22571

开发一个android app需要的技术

最近一直在忙着工作的事,很久没有更新博客了,今天突发奇想要把自己学到的android方面的知识记录下来,一方面是为了系统的回顾一下知识点自己的学习路线,另一方面希望能帮到更多初学的朋友。学习andro...
  • qq_26944753
  • qq_26944753
  • 2016年08月30日 11:55
  • 3189

Android十大常用技术揭秘-挑战

Android四大组件 http://www.cnblogs.com/pepcod/archive/2013/02/11/2937403.html   三级缓存 可以用我们上课讲的说 也可以...
  • ljx19900116
  • ljx19900116
  • 2015年10月31日 19:08
  • 2140

Quora的技术探索

关于问答类的应用,最早接触的是stackoverflow和知乎 ,而Quora作为知乎的原型,因为其创始人来自FaceBook而吸引了我。事实上关于Quora的技术分析,冯大辉和陈皓都已经有所详细的阐...
  • weilanxing
  • weilanxing
  • 2012年05月21日 13:44
  • 428

Quora 用了哪些技术 ?

很多团队都在学习、研究 Quora 。前段时间看到这篇 Quora's Technology Examined ,阐述了 Quora 的技术架构,有一些值得关注的信息,记录并分享一下。使用云计算服务Q...
  • FranklySun
  • FranklySun
  • 2011年04月28日 01:41
  • 649

【分享】Quora使用到的技术

http://sd.csdn.net/a/20110704/301038.html导读:酷壳网的陈皓以前向大家介绍过Stack Exchange的系统架构和Facebook的系统架构,今天向大家介绍Q...
  • kurobane
  • kurobane
  • 2011年07月04日 21:47
  • 178

Quora使用到的技术

Quora使用到的技术2011年7月4日  陈皓  以前向大家介绍过Stack Exchange的系统架构和Facebook的系统架构,今天和大家说说Quora的。本文主要参考了Phil Whelan...
  • wave_1102
  • wave_1102
  • 2011年07月07日 15:34
  • 530

Best-Of-Quora

  • 2013年02月25日 11:57
  • 1.36MB
  • 下载

如何成为一个专业级的c++ 程序员--- An answer from quora

如何成为一个专业级的c++ 程序员--- An answer from quora C++ is a Huuuuuge Language. The Path towards Experti...
  • anchorTan
  • anchorTan
  • 2015年03月16日 08:49
  • 212

Quora cqa问题抓取

quora是一个比较知名的社区问答网站,对于目前比较流行的cqa问题,通过quora提供的搜索工具来找到相似的问题进而抽取答案。 事实上,quora的搜索大致是根据关键词匹配的。 String...
  • fssqawj
  • fssqawj
  • 2015年09月13日 17:51
  • 560
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Quora的用到的一些技术
举报原因:
原因补充:

(最多只允许输入30个字)