最新大型网站技术架构探讨

时间:2025-04-20

BeetleSoft

“大型”网站技术架构探讨

余浩东 2011年6月CE v6.3

大型网站架构的目标与挑战 网站架构演变及其技术脉络 架构设计理论与原则 讨论及总结

BeetleSoft 大型网站技术架构探讨[2]

大型网站架构的目标与挑战■何谓“大型”网站?没有统一的判断标准,流量大小是一个重要指标

网站 http://www.77cn.com.cn http://www.77cn.com.cn http://www.77cn.com.cn http://www.77cn.com.cn

日均流量[IP/PV] IP≈ 5,972,587 PV≈ 9,376,962 IP≈229,680,000 PV≈2,955,981,600 IP≈25,680,000 PV≈222,132,000 IP≈5,532,000 PV≈25,723,800

http://www.77cn.com.cn

IP≈300,000 PV≈747,000

日均流量至少IP>1,000,000才算大型网站BeetleSoft 大型网站技术架构探讨[3]

大型网站架构的目标与挑战■何谓“大型”网站?

网站内容是否“动态”才是关键BeetleSoft 大型网站技术架构探讨[4]

大型网站架构的目标与挑战■网站架构目标与挑战

负载均衡 数据备份 异地容灾 。。。 高速缓存 并行计算 异地镜像 。。。

每个目标背后面临着技术、设计、维护等诸多方面的挑战。 而目标本身的期望值也会根据实际情况进行调整,这也意味着网站架构建设是个不断调整的过程。BeetleSoft 大型网站技术架构探讨[5]

开发框架 多层设计 业务分割 。。。

大型网站架构的目标与挑战 网站架构演变及其技术脉络 架构设计理论与原则 讨论及总结

BeetleSoft 大型网站技术架构探讨[6]

网站架构演变及其技术脉络■[Step1]Web动静态资源分离及其与DB物理分离

优点:“简单”、安全性提高 缺点:存在单点,谈不上高可用性(high availability架构目标) 技术点:应用设计要保证可扩展(framework很重要Spring/Beetle)、Web Server动/静态资源分离 Web Server(Apache\Nginx\IIS\JBoss…)、 Database Server(Mysql\Oracle\Redis…)

BeetleSoft 大型网站技术架构探讨[7]

网站架构演变及其技术脉络■[Step1]技术点—Web动静态资源分离

img,doc,js,css等静态资源使用单独的Web HTTP Server处理请求 动态页面静态化处理

BeetleSoft 大型网站技术架构探讨[8]

网站架构演变及其技术脉络■[Step2]采取缓存处理减少对网 站的访问

减少对Web应用 服务器的请求

减少对数据库 的查询

减少文件系 统I/O操作 优点:简单有效、维护方便 缺点:依然存在单点 技术点:客户端(浏览器)缓存、前端页面缓存、页面片段缓存、本地数据缓存/数据库缓存BeetleSoft 大型网站技术架构探讨[9]

网站架构演变及其技术脉络■[Step2]技术点—客户端(浏览器)缓存技术点说明 根据HTTP协议特性,修改Header参数(Cache-Control、Expires、Pragma、LastModified、Etag),让浏览器来缓存页面(一些优秀开发框架会对此做透明的封装, 例如:Beetle

)http://www.77cn.com.cn/Protocols/rfc2616/rfc2616-sec14.html 使用HTTP1.1协议,由于http pipelining技术特性,能够使用get请求的决不采取post 请求 为了节约带宽,压缩页面(Content-Encoding: gzip);页面各个元素能“小”即“ 小”,例如:js包压缩,js合并,图片压缩等 会话状态信息采取Cookie代替传统使用服务器Sessions对象存储习惯做法;使用Ajax 实现页面局部刷新 如果可能,可采取浏览器插件技术突破浏览器功能限制,将原本在服务 器端运算,尽量迁到浏览器端。ActiveX/Applet/Flash/…. HTML5 最值得期待,她的出现必定改变整个Web世界能够让浏览器缓存的数据一定要缓存;浏览器能够处理的 运算,决不放在服务器端来处理。BeetleSoft 大型网站技术架构探讨[10]

网站架构演变及其技术脉络■[Step2]技术点—前端页面缓存

采用具备缓存功能的http反向代理服务器作前端页面缓存器, Varnish\Squid\Ncache\AiCache(商业)…【硬件F5】BeetleSoft 大型网站技术架构探讨[11]

网站架构演变及其技术脉络■[Step2]技术点—页面片段缓存ESI(Edge Side Includes)

ESI需要服务器端支持,常见apache(mod_esi)、WebLogic、 JSP标签库(JESI)等。BeetleSoft 大型网站技术架构探讨[12]

网站架构演变及其技术脉络■[Step2]技术点—本地数据缓存

技术点说明 关系数据库系统(如:Oracle\MySql)Query Cache策略: 一般以sql为key来缓存查询结果,尽量不要拼sql,使用 PreparedStatement的“?”模式sql;Query Cache大小要 根据数据库系统具体情况合理设置,过大只会浪费内存,参考 值:128M

关系数据库系统Data Buffer策略:就是数据库数据内存缓存器 ,其访问命中率决定数据库性能,可根据实际物理内存大小适 量增大,如:MySql建议buffer值为物理内存60-80%应用服务器Cache包括:对象缓存(例如:对象线程安全,做 成单例),更新频率不大数据考虑缓存(如:基表数据、配置 文件信息),考虑使用线程池,对象池,连接池等 常见java解决方案:map\OSCache\EHCache等

需要从数据库系统和Web应用服务器两个层面考虑缓存优化

BeetleSoft 大型网站技术架构探讨[13]

网站架构演变及其技术脉络■[Step3]增加机器做HA、数据库读写分离

优点:增加服务器和HA机制,系统性能及可用性得到保证 缺点:读写分离,增加程序难度,架构变复杂,维护难度增加 技术点:负载均衡、DAL、数据库读写分离

BeetleSoft 大型网站技术架构探讨[14]

网站架构演变及其技术脉络■[Step3]技术点—负载均衡

类型 DNS负载均衡 反向代理软件 硬件产品 LVS(Lin …… 此处隐藏:1124字,全部文档内容请下载后查看。喜欢就下载吧 ……

最新大型网站技术架构探讨.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219