可扩展Web架构探讨.ppt

上传人:本田雅阁 文档编号:2597939 上传时间:2019-04-15 格式:PPT 页数:50 大小:1.04MB
返回 下载 相关 举报
可扩展Web架构探讨.ppt_第1页
第1页 / 共50页
可扩展Web架构探讨.ppt_第2页
第2页 / 共50页
可扩展Web架构探讨.ppt_第3页
第3页 / 共50页
可扩展Web架构探讨.ppt_第4页
第4页 / 共50页
可扩展Web架构探讨.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《可扩展Web架构探讨.ppt》由会员分享,可在线阅读,更多相关《可扩展Web架构探讨.ppt(50页珍藏版)》请在三一文库上搜索。

1、优秀精品课件文档资料,可扩展Web架构探讨,echouzhou,高性能网站每秒能处理成千上万个请求,关键是 Scalability 良好的可伸缩性 Caching 无处不在的缓存,Scalability,是系统适应不断增长用户数量的能力 性能平稳 负载均衡、容错 接入保护、Cache缓冲 扩容容易 所有组件都应当可以简单扩展 无共享架构 可控状态,Vertical Scaling,更大的服务器 更快的CPU 扩展性/价格比很差 超级计算机都是平行扩展的!,可伸缩性vs.高性能,在系统可扩展的前提下提高性能,Web的可扩展性,Web服务器 负载均衡 南北互通,Web服务器,Web服务器的选择,A

2、pache 不适合静态文件的支持 内存、CPU占用比较大 非常成熟,功能强大,配置丰富 TWS 架构中心自主开发 对CGI的支持比较独特 CGI性能非常好 Qhttpd 公司内部软件 只适合静态文件的支持 非常稳定可靠 Lighttpd、Nginx 内存、CPU开销小 静态文件性能胜出很多 越来越多的网站开始用它,性能改进,动态、静态内容分开 静态文件:qhttpd/lighttpd/nginx 动态内容:Apache 某些静态文件压缩传输:lighttpd的mod_compress 动态内容性能提升 传统CGI PHP、Rails、SSI FastCGI TWS CGI,FastCGI,出现

3、很早的技术 减少传统CGI调用的消耗 基本保持源代码级的兼容性 #include #include While (FCGI_Accept() = 0) / CGI代码 ,FastCGI的配置,负载均衡技术,负载均衡(Load Balancing),是可扩展性的关键 提高网站的可用性 接入保护、失效检测,DNS轮询,是最简单的负载均衡 域名设置多条A记录,DNS轮询,硬件负载均衡,Cisco Alteon Foundry F5,软件负载均衡,免费解决方案 Linux Virtural Server 基于内核,通过修改TCP/IP数据报文实现负载均衡,确保可用性的守护进程ldirectord 高性

4、能,部署相对麻烦,不便于观察 HAproxy 基于 layer 7 效率相对较低,部署容易,有web界面便于观察,Layer 4,TCP层的交换 根据源/目的地址和端口进行负载均衡 负载均衡策略 round-robin 最少连接,Layer 7,基于HTTP请求 最常用的是URL分发,南北互通,双线服务器,多个IP地址 一个IP地址,多个路由 深南花园: 电信、网通、教育网三通机房 北方网通访问深圳网通仍然很慢,动态DNS,根据来自不同ISP的用户接入到就近的服务器 公司自己开发的动态DNS软件 自己开发的DNS服务器 IP地址库和IP测速 存在业务分布的问题,CDN,Content Deli

5、very Network 就近接入 代理缓存 域名解析增加CNAME即可,Caching,Web Cache的类型,浏览器Cache 私有缓存 可以缓存“private”响应 Cache Proxy Surrogates -缓存代理 Web加速 共享缓存 只能缓存“public”响应,一些数据,多至43%的Web请求访问不可缓存的内容 Web缓存命中率为40%左右是比较现实的,页面静态化,理想状态: 静态化所有页面实际做不到 如何静态化? 由模板生成静态页面 定时或有更新时 困难: 成千上万个页面的静态化不现实 页面有变体,不适合静态化 多台服务器维护麻烦 页面既包含静态内容,又包含动态内容,

6、页面缓存,按需静态化 前端cache存储动态页面内容 mod_cache Squid Varnish* 遵循HTTP的Cache规范 可精细控制Cache Expires Cache-control 适合GET类CGI请求,HTTP的Cache规范,要充分发挥Cache的效用,就必须了解HTTP Cache规范和机制 条件请求 Expiration Cache-control Cookie,条件请求,If-Modified-Since/Last-Modified 1. 服务器响应: 200 OK Last-Modified: 2. 浏览器请求 GET HTTP/1.1 If-Modified-

7、Since: 3.服务器响应 200 OK 或 304 Not Modified,条件请求(2),If-None-Match / ETag 1. Server响应 200 OK ETag: abcdef 2. 浏览器请求 GET HTTP/1.1 If-None-Match: abcdef 3. Server响应 200 OK 或 304 Not Modified,Expiration,Expires 设置对象的绝对失效时间 是HTTP/1.0规范 max-age 是Cache-control的一个指令 设置对象的年龄(秒数) 是HTTP/1.1规范 max-age优先于Expires,Cac

8、he-control,no-cache=Set-cookie 浏览器和squid都不可以缓存 再次使用前需发送条件请求 max-age=NNN 指定缓存有效时间(秒) public 浏览器和squid都可以缓存 max-age指定缓存时间 private 只有浏览器可以缓存,Cookies,HTTP请求携带Cookies: Cookie: name=profile,domain=, path=mysecrets.html, cookie=day-trader HTTP响应设置Cookies: Set-cookie: name=profile,domain=, path=mysecrets.ht

9、ml, cookie=day-trader Cached content 需要的时候才设置Cookies太理想化 Squid添加一个IMS头,一些典型的Cache场景,返回个人信息 Cache-control: private, max-age=NNN CGI写操作 Cache-control: no-store, no-cache CGI获取状态等信息 Cache-control: public, max-age=NNN,QQvideo实践分享,QQvideo Web架构图,实践要点,3DNS + HAProxy实现负载均衡、接入保护 动态、静态文件分用不同服务器 首页静态化 某些频繁调用C

10、GI:Squid缓存 视频播放:CDN加速 缩略图:Squid缓存 Web数据缓存:Memcached,QQvideo的一些数据,HAProxy: 每天转发HTTP请求:5500万 CPU占用率:1020% 增加图片 图片Squid: 命中率:90% 增加图片 Memcached: 命中率:40%左右 增加图片,相关软件介绍,HAProxy,http:/haproxy.1wt.eu 特色 L7交换 采用epoll,效率很高 配置简单灵活,部署很容易 Graceful restart 不影响已有连接 Web监控界面 清晰直观 内容分发(Content Switching) ACL定义规则 ACL

11、灵活组合选择分发backend 请求/响应头改写 负载均衡和过载保护 负载均衡策略:加权round-robin、Source、URL Sticky sessions 接入连接数限制 后端服务器健康监测,HAproxy与LVS比较,HAProxy效率不如LVS User级 vs. 内核级 HAProxy部署简单 一个程序 vs. 内核patch HAProxy功能丰富 L7 vs. L4 HAProxy性能可满足大部分网站需要,达到较大规模时可改用LVS.,HAproxy配置,URL分发规则,多个server池,Sticky sessions,健康检测和接入限制,HAProxy Web界面,Memcached,http:/ 高性能的,分布式的内存对象缓存系统 Epoll驱动,效率高 高效的内存管理机制 缓存对象可设置Expire时间 使用简单,部署更简单 万金油 Web Cache 昵称缓存 用户观看历史 后台管理系统 用户操作频率控制,Memcached运行状况,Squid,http:/www.squid-cache.org 有力的竞争者 Varnish!,Squid监控,谢 谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1