知乎的整个网站架构图如下: 知乎是国内很少的使用Python开发的一个网站,也很多值得我们学习的地方,从知乎让我们也可以了解到一些新的WEB技术。 一、Python框架 知乎目前使用的是Tornado 框架。Tornado 全称Tornado Web Server,是一个用Python 语言写成的Web 服务器兼Web 应用框架,由 FriendFeed 公司在自己的网站FriendFeed 中使用,被facebook 收购以后框架以开源软件形式开放给大众。 学习文档:http://www./documentation 二、数据库 目前知乎采用的是MySQL作为主要的存储,使用SqlAlchemy 为ORM进行数据库的建模或者映射。 三、缓存技术 知乎使用Redis来进行缓存、队列、计数或者任务,使用Redis-Py为其连接客户端。 Redis参考链接:http://redis./en/latest/index.html Redis-Py参考链接:http://redis-py./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./en/latest/index.html 十、代码部署 常见的Python项目基本上采用Fabric进行部署,不知道知乎到底用的是哪一个。 十一、搜索实现 |
|
来自: java_laq小馆 > 《Python》