分享我的发现,分享我的收藏,分享我的心情!!
10/02 6

豆瓣架构 不指定

jason , 10:46 , 我的收藏 » Other , 评论(0) , 引用(0) , 阅读(17) , Via 本站原创
洪强宁:关于豆瓣的系统架构图,首先我们在Web server上做个划分,把网站内容分为动态内容和静态内容。在豆瓣上所有的html都是动态内容,图片都是静态内容。分成两个Web 服务可以做不同的调优。 对动态内容,我们用的是nginx和lighttpd的混合,nginx做负载的平衡,lighttpd通过 SCGi 与application server相连,application server是基于 quixote这个框架写的。

application server拿到用户的请求,分析用户的url,并且利用外部的资源,比如数据库,组合成一个html,返回。从数据库存取会比较慢,数据库有大量的 IO,我们使用cache,我们使用的是Memcached,这是一个分布式的内存的cache,比如你可以用很多机器,每个机器有两个G的内存,我们自己开发了client端来使用它,另外如果用户有搜索请求,我们会用搜索引擎。Xapian是一个C++写的开源的搜索引擎,我们通过Web service去访问它。其他,我们还提供了另外的Web service接口响应用户的请求,比如要访问某个文件。spread是我们最近加了一部分,用户有的请求可以采用这样的异步服务。

数据库是这样的,两个MySQL做成一对,一个master ,一个 slave,根据应用划分,使得load不会太高。这个图上»¬的是两对,实际上有三对。还有一个slave,一方面作为备份,一方面用作数据挖掘,因为不能对线上的数据做直接操作。

对于静态部分,我们也是用nginx,你注意到豆瓣现在有日记的贴图功能系统,用户可能上传很多图片,我们采用的方案是用了mogile FS ,这是一个分布式的文件系统,同时可以做备份,保持高可用性,可以提高很大的IO。

关于application server,它都是用Python写的。我们是用的MVC方式,Controller我们用的是quixote ,它接受用户的请求,根据这个URL去找到Model的某个具体的函数来执行,它是一个dispatcher,当中会判断用户的权限等。然后再传给 View,View根据模版进行渲染,形成网页。View的模版,我们以前是用的是PTL,PTL很高效,最近引用了mako,这是一个比较现代的开源的模版,用它写出的代码比较好维护,比PTL好维护一些.。同时,在使用mako的同时,我们的工程师做了很多加速的工作,现在mako的代码有很多是豆瓣的人写的。

你如果注意过Python的Web开发框架的话,你会发现Python的有三个比较著名的框架,Django,Pylons,TurboGears,Pylons默认的模版就是Mako。

下面的就是Model,业务模块,核心是类是User,因为Web2.0是以人为本,我们肯定会有一个User。只有人也做不了事情,还要有物。豆瓣的物,就是Subject,比如书,比如评论,比如小组等。

与数据库进行链接,我们一个很轻量级的与数据库进行链接,这也是一个开源项目,SQL Farm Manager。这个Web service,豆瓣中有很多用的都是Web service。
10/02 5
Xdebug安装
详细介绍了什么是Xdebug,为什么要用Xdebug,以及如何安装Xdebug。
Xdebug教程之Xdebug安装:http://www.phpq.net/tutorial/xdebug-install.html

Xdebug使用
从一个最简单的出错信息开始,到复杂的调试,一步一步向你演示Xdebug的使用。
Xdebug教程之Xdebug使用:http://www.phpq.net/tutorial/xdebug-use.html

Xdebug配置
根据Xdebug的官方文档来详细解释Xdebug的参数配置。
Xdebug教程之Xdebug配置:http://www.phpq.net/tutorial/xdebug-config.html

Xdebug调试
列举如何通过Xdebug来获取PHP程序的一些调试信息。
Xdebug教程之Xdebug调试:http://www.phpq.net/tutorial/xdebug-debug.html

WinCacheGrind工具
教你如何利用Xdebug配合WinCacheGrind工具来检测PHP代码的效率以及分析PHP代码。
Xdebug教程之WinCacheGrind:http://www.phpq.net/tutorial/xdebug-wincachegrind.html

Xdebug终极教程
Xdebug终极教程分为五个部分,从Xdebug安装、Xdebug使用、Xdebug配置、Xdebug调试到WinCacheGrind工具的使用,完整而详细的一步一步揭秘Xdebug。
Xdebug终极教程:http://www.phpq.net/tutorial/xdebug.html
Tags: ,
10/02 5
PHP的执行速度往往不是问题最大的地方,应该好好分析系统的各个方面,找到元凶。工具方面,他推荐用Yahoo的YSlow和Google的Page Speed分析前端的问题,再用Valgrind的Callgrind分析低层的后端性能,用XDebug分析用户空间PHP的性能。此外,他还顺带手指出了读写网前端的性能问题。
Tags:
10/02 4
Sphinx ,
Xapian ,
Lemur,

Firtex:
http://www.docin.com/p-16408737.html

Lucene


分词:
中科院分词系统ICTCLAS bamboo
Tags: , ,
10/02 4
Tags:
10/02 3
http://code.google.com/p/qgserver/

QGServerLib是一个C++实现的简单易用的Tcp服务器框架库,旨在简化服务器的构建过程。具有如下特点:

1, 以模块化的处理池为基本构建元素,能够方便的实现安全稳定的服务架构。

2,事件触发,多线程事件监听,任务化读写访问,解决单线程监听及数据读写带来的性能瓶颈,连接不受线程数限制。

3,写队列,并行读写逻辑,支持服务器数据推送(Push)。

4,数据传送协议,避免数据传送错误,封装数据流。

5,类远过程调用。

6,提供相配套的ActionScript脚本客户端。能够方便的实现网页实时通讯,解决传统网页通讯的消息轮询问题。
Tags:
10/02 3

http://zhoulifa.bokee.com/5351040.html
http://lse.sourceforge.net/epoll/index.html
http://www.hudong.com/wiki/epoll

Epoll是Linux内核为处理大批量句柄而作了改进的poll。要使用epoll只需要这三个系统调用:epoll_create(2), epoll_ctl(2), epoll_wait(2)。它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),在2.6内核中得到广泛应用,例如LightHttpd。
Tags:
10/02 3

C libevent 不指定

jason , 22:07 , 我的收藏 » C / C++ , 评论(0) , 引用(0) , 阅读(19) , Via 本站原创
http://blog.gslin.info/2005/11/network-programming-using-libevent-i.html
http://zh.wikipedia.org/wiki/Libevent
Tags: ,
分页: 1/22 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]