您的位置:首页 > 运维架构 > 网站架构

构建10亿级PV的大型网站设计要点(二):Web服务器层

2008-10-22 09:09 344 查看
第一篇了介绍了网络架构的设计后,这里主要介绍接入层的服务器架构设计。假设该网站使用Java 开发业务应用。

接入层可以按照应用分类,也可以按照部署分类分层。先按照部署分类设计,该分类一般把接入层分为三层:第一层是LoadBalance,用于管理一个VIP下多台接入应用服务器;第二层是Apache之类HTTP服务器,用来对静态资源的加速处理;第三层是Java应用服务器,如Jboss, Weblogic等。

按照应用分类,一般是分为三类:第一类是静态资源的下载,如图片的下载,此类服务器一般是Apache之类HTTP服务器;第二类是动态资源的业务处理,一般是Jboss之类应用服务器;第三类也是动态资源的 处理,主要用于高性能的大并发的业务处理,此类业务应用一般是用C/C++开发,如Apache的Module,或则Lighttpd的Plugin之类。

对于静态资源的下载服务器,从高性能角度和减少服务器部署的角度考虑,建议采用Lighttpd HTTP服务器,而不是采用传统的Apache服务器,原因是Apache是使用阻塞模式I/O操作,性能比较差,可以处理的并发能力有限,而lighttpd是使用异步I/O方式,处理资源下载的并发能力远远超过Apache。详细的介绍在我给公司同事分享的“深入HTTP服务器”的PPT里。

对于Java应用服务器,目前一般是使用Jboss作为Java应用服务器的,而此服务器也是使用每连接/线程模型处理业务请求的,也存在KeepAlive问题,因此建议不要直接部署Jboss服务器在前端或则直接部署在VIP后面,而是前面加一层Apache服务器,Apache服务器和Jboss服务器之间使用Mod_JK进行通信, Mod_JK配置一定数量的连接池,如最大为1000。而对于浏览器与HTTP服务器之间的KeepAlive问题由Apache服务器解决。传统的Apache服务器其实也存在KeepAlive问题,只有Apache2.2x版本的Event模式(该详细介绍参见之前我的文章介绍)才解决了该问题,因此部署的使用请使用Apache2.2x版本Event模式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: