首页 > 教育学习 > 为什么 > quora使用了哪些技术?

quora使用了哪些技术?
2012-01-19 18:09:10   来源:   点击:

    quora使用了哪些技术?

    2 个答案

    • 答案 1:

      从网上看是这样的:

      使用云计算服务

      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 作为主要开发语言。

      通信处理

      后端通信使用的是 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 的东西。

      连接在这里:http://www.dbanotes.net/arch/quora_tech.html

    • 答案 2:

      以下引自Quora Co-founder Charlie Cheever答案:

      Right now, the code is mostlyPython and JavaScript. We use the Pylons framework as a starting point but have replaced about half of it with our own custom systems(LiveNode/webnode2.) The JavaScript part of our infrastructure is built on top ofjQuery.//主要应用Python 和 JS技术。LiveNode/webnode2为他们自己搭建的框架。We use Thrift to communicate between different backend systems.Our main webserver is paste (the default for Pylons) with nginx and HAProxy in front of it. For our Comet server, we use Tornado.//此处可参考上面@王兆献的答案。We mostly use Amazon EC2 and S3 for hosting. // 使用亚马逊的云服务。Our data store is mostly MySQL + memcached right now, plus two services written in C++.// 数据存储用的是MySql +memcachedWe use git for version control. // 版本控制工具。

      地址:http://www.quora.com/What-languages-and-frameworks-were-used-to-code-Quora?q=what+quora+frame

      Hope this helps!

相关热词搜索:

上一篇:实名社区和非实名社区的业务模式有什么不同??
下一篇:PM需要懂技术吗?