知乎技术方案初探

标签: 程序设计 架构 | 发表时间:2012-06-14 00:34 | 作者:标点符
出处:http://www.biaodianfu.com

知乎的整个网站架构图如下:

知乎是国内很少的使用Python开发的一个网站,也很多值得我们学习的地方,从知乎让我们也可以了解到一些新的WEB技术。

一、Python框架

知乎目前使用的是 Tornado 框架。Tornado 全称Tornado Web Server,是一个用Python 语言写成的Web 服务器兼Web 应用框架,由 FriendFeed 公司在自己的网站FriendFeed 中使用,被facebook 收购以后框架以开源软件形式开放给大众。

参考链接: http://zh.wikipedia.org/wiki/Tornado

学习文档: http://www.tornadoweb.cn/documentation

二、数据库

目前知乎采用的是MySQL作为主要的存储,使用 SqlAlchemy 为ORM进行数据库的建模或者映射。

三、缓存技术

知乎使用 Redis来进行缓存、队列、计数或者任务,使用 Redis-Py为其连接客户端。

Redis参考链接: http://redis.readthedocs.org/en/latest/index.html

Redis-Py参考链接: http://redis-py.readthedocs.org/en/latest/index.html

四、Javascript框架

知乎使用Google的 Closure Library作为前端的JavaScript 框架。

五、负载处理

目前知乎使用的是 nginx做反向代理,用nginx来做静态文件等大数据量的I/O操作。

六、图片服务

知乎以前用到的 Upyun,现在已经迁移到知乎自己建的图片服务上。

七、邮件服务

知乎的邮件发送一开始使用的是Amazon的SES,由于SES有些功能不能满足需求,目前已经转换成 Mailgun

八、消息系统

知乎消息系统采用的是comet实现,comet是基于http长连接的“服务器推”技术。

九、虚拟环境

作为一个Python网站,知乎很有可能采用 Virtualenv来解决纯净的包环境问题。

中文文档地址: http://virtualenv-chinese-docs.readthedocs.org/en/latest/index.html

十、代码部署

常见的Python项目基本上采用 Fabric进行部署,不知道知乎到底用的是哪一个。

十一、搜索实现

知乎使用 mmseg做中文分词,对应的词根存在redis中作为key,数据库id作为value,每个数据项是一个zset集合。查询时根据key找到对应的value。

Related posts:

  1. 在Windows上安装配置Redis及Python使用
  2. 微格式:让网页更加语义化
  3. PR=10 网站列表

相关 [知乎 技术] 推荐:

知乎技术方案初探

- - 标点符
知乎是国内很少的使用Python开发的一个网站,也很多值得我们学习的地方,从知乎让我们也可以了解到一些新的WEB技术. 知乎目前使用的是 Tornado 框架. Tornado 全称Tornado Web Server,是一个用Python 语言写成的Web 服务器兼Web 应用框架,由 FriendFeed 公司在自己的网站FriendFeed 中使用,被facebook 收购以后框架以开源软件形式开放给大众.

知乎客户端埋点流程、模型和平台技术

- - 知乎每日精选
埋点作为商业智能(BI)和人工智能(AI)体系中重要的一环,是公司提升产品工程质量、实施 AB Testing、个性化推荐服务重要的数据来源. 在传统的纯 Web 和 Native 开发的产品中,埋点从技术的角度来说未必多深奥,但从业务的角度来说要做到埋点设计规范、流程高效和保证质量却是很难. 本文重点介绍一下知乎客户端的埋点模型、流程和平台技术.

目前人脸识别技术的挑战是什么? - 知乎

- -
也是放假太闲,上知乎来锻炼一下手指. 在回答题主的问题的时候,我觉得应该注意做『科研』和做『产品』之间的区别. 论文中汇报的人脸识别技术是属于科研的行列. 比如在LFW上99.7%,这种数字的意义更多是让搞研究的那个圈子里面的人更加直观的了解到一些情况,你也知道,通常来说这个准确率是非常高的了,所以我们可以说『人脸识别技术在.

通向AGI之路:大型语言模型(LLM)技术精要 - 知乎

- -
ChatGPT出现后惊喜或惊醒了很多人. 惊喜是因为没想到大型语言模型(LLM,Large Language Model)效果能好成这样;惊醒是顿悟到我们对LLM的认知及发展理念,距离世界最先进的想法,差得有点远. 我属于既惊喜又惊醒的那一批,也是典型的中国人,中国人善于自我反思,于是开始反思,而这篇文章正是反思的结果.

Quora使用到的技术,quora也就是国内的知乎,百度知道,你问我答那种网站

- wangdei - Starming星光社最新更新
以前向大家介绍过Stack Exchange的系统架构和Facebook的系统架构,今天和大家说说Quora的. 本文主要参考了Phil Whelan的这篇文章《Quora’s Technology Examined》. 关于Quora是个什么网站我就不多说了,国内对他的C2C网站叫“知乎”. 我们还是来看看Quora的技术吧.

扒一扒知乎上的帖子——“为什么有些大公司技术弱爆了?”

- - 四火的唠叨
知乎上看到一个热帖,我觉得很有意思,叫做“ 为什么有些大公司技术弱爆了. 我刚看到标题的时候,先入为主和刻板偏见了一下,正如同第一个回答一样,我皱了皱眉头,产生了对题主的鄙视之情;但是很快,读完帖子以后,我却立场明确地站到题主一边了. 看题目以为是题主傻逼,看了正文发现真的是公司傻逼. 上面这种情况其实发生的概率挺低的,但是我觉得这回是真的发生了.

知乎 HBase 实践 - 知乎

- -
HBase 是一个基于 Hadoop 面向列的非关系型分布式数据库(NoSQL), 设计概念来源于谷歌的 BigTable 模型,面向实时读写、随机访问大规模数据集的场景,是一个高可靠性、高性能、高伸缩的分布式存储系统,在大数据相关领域应用广泛. HBase 系统支持对所存储的数据进行透明切分,从而使得系统的存储以及计算具有良好的水平扩展性..

知乎问答

- - 人月神话的BLOG
没有编程经验的,至少需要掌握哪些知识,才能胜任软件产品的需求分析工作. 在这里首先要注意编程经验和懂编程,编码和软件工程是两回事情. 举个例子你没有在生产线做过工人,但是不代表你不可以了解一个产品从原材料开始如何从生产线生产出来的. 你可以当生产线去参观和学习,当然如果你能够在生产线实习一段时间印象更加深刻.