首页
ppt
软件开发管理
×
该PPT是用户上传,如果对该PPT内容或使用有所疑问,请根据该ppt中作者所留的联系方式,咨询原作者!
如果涉及侵权等原因需要删除,请联系QQ:875388611
腾讯大讲堂08-可扩展Web架构探讨
5080
2
0
dunderhead
颜色:
下载需要
8
金币
[ 金币充值 ]
亲,您也可以通过
分享原创文档
来获得金币奖励!
服务器/托管费、人工审核、技术维护等都需要很多费用,感谢您支持深度开源的发展!
下载PPT
0
推荐
5
收藏
PPT 内容
PPT 图集
1. 可扩展Web架构探讨echouzhou
2. 高性能网站每秒能处理成千上万个请求,关键是 Scalability 良好的可伸缩性 Caching 无处不在的缓存
3. Scalability是系统适应不断增长用户数量的能力 性能平稳 负载均衡、容错 接入保护、Cache缓冲 扩容容易 所有组件都应当可以简单扩展 无共享架构 可控状态
4. Vertical Scaling更大的服务器 更快的CPU 扩展性/价格比很差 超级计算机都是平行扩展的!
5. 可伸缩性vs.高性能在系统可扩展的前提下提高性能
6. Web的可扩展性 Web服务器 负载均衡 南北互通
7. Web服务器
8. Web服务器的选择Apache 不适合静态文件的支持 内存、CPU占用比较大 非常成熟,功能强大,配置丰富 TWS 架构中心自主开发 对CGI的支持比较独特 CGI性能非常好 Qhttpd 公司内部软件 只适合静态文件的支持 非常稳定可靠 Lighttpd、Nginx 内存、CPU开销小 静态文件性能胜出很多 越来越多的网站开始用它
9. 性能改进动态、静态内容分开 静态文件:qhttpd/lighttpd/nginx 动态内容:Apache 某些静态文件压缩传输:lighttpd的mod_compress 动态内容性能提升 传统CGI PHP、Rails、SSI FastCGI TWS CGI
10. FastCGI出现很早的技术 减少传统CGI调用的消耗 基本保持源代码级的兼容性 #include
#include
While (FCGI_Accept() >= 0) { // CGI代码 }
11. FastCGI的配置
12. 负载均衡技术
13. 负载均衡(Load Balancing) 是可扩展性的关键 提高网站的可用性 接入保护、失效检测
14. DNS轮询是最简单的负载均衡 域名设置多条A记录,DNS轮询
15. 硬件负载均衡 Cisco Alteon Foundry F5
16. 软件负载均衡免费解决方案 Linux Virtural Server 基于内核,通过修改TCP/IP数据报文实现负载均衡,确保可用性的守护进程ldirectord 高性能,部署相对麻烦,不便于观察 HAproxy 基于 layer 7 效率相对较低,部署容易,有web界面便于观察
17. Layer 4TCP层的交换 根据源/目的地址和端口进行负载均衡 负载均衡策略 round-robin 最少连接
18. Layer 7基于HTTP请求 最常用的是URL分发
19. 南北互通
20. 双线服务器多个IP地址 一个IP地址,多个路由 深南花园: 电信、网通、教育网三通机房 北方网通访问深圳网通仍然很慢
21. 动态DNS 根据来自不同ISP的用户接入到就近的服务器 公司自己开发的动态DNS软件 自己开发的DNS服务器 IP地址库和IP测速 存在业务分布的问题
22. CDNContent Delivery Network 就近接入 代理缓存 域名解析增加CNAME即可
23. Caching
24. Web Cache的类型浏览器Cache 私有缓存 可以缓存“private”响应 Cache Proxy Surrogates -缓存代理 Web加速 共享缓存 只能缓存“public”响应
25. 一些数据多至43%的Web请求访问不可缓存的内容 Web缓存命中率为40%左右是比较现实的
26. 页面静态化理想状态: 静态化所有页面——实际做不到 如何静态化? 由模板生成静态页面 定时或有更新时 困难: 成千上万个页面的静态化不现实 页面有变体,不适合静态化 多台服务器维护麻烦 页面既包含静态内容,又包含动态内容
27. 页面缓存按需静态化 前端cache存储动态页面内容 mod_cache Squid Varnish* 遵循HTTP的Cache规范 可精细控制Cache Expires Cache-control 适合GET类CGI请求
28. HTTP的Cache规范要充分发挥Cache的效用,就必须了解HTTP Cache规范和机制 条件请求 Expiration Cache-control Cookie
29. 条件请求If-Modified-Since/Last-Modified 1. 服务器响应: 200 OK Last-Modified: … 2. 浏览器请求 GET … HTTP/1.1 If-Modified-Since: … 3.服务器响应 200 OK 或 304 Not Modified
30. 条件请求(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
31. ExpirationExpires 设置对象的绝对失效时间 是HTTP/1.0规范 max-age 是Cache-control的一个指令 设置对象的年龄(秒数) 是HTTP/1.1规范 max-age优先于Expires
32. Cache-controlno-cache=[Set-cookie] 浏览器和squid都不可以缓存 再次使用前需发送条件请求 max-age=NNN 指定缓存有效时间(秒) public 浏览器和squid都可以缓存 max-age指定缓存时间 private 只有浏览器可以缓存
33. CookiesHTTP请求携带Cookies: Cookie: name=profile,domain=www.bigmoney.com, path=mysecrets.html, cookie=day-trader HTTP响应设置Cookies: Set-cookie: name=profile,domain=www.bigmoney.com, path=mysecrets.html, cookie=day-trader Cached content 需要的时候才设置Cookies——太理想化 Squid添加一个IMS头
34. 一些典型的Cache场景返回个人信息 Cache-control: private, max-age=NNN CGI写操作 Cache-control: no-store, no-cache CGI获取状态等信息 Cache-control: public, max-age=NNN
35. QQvideo实践分享
36. QQvideo Web架构图
37. 实践要点3DNS + HAProxy实现负载均衡、接入保护 动态、静态文件分用不同服务器 首页静态化 某些频繁调用CGI:Squid缓存 视频播放:CDN加速 缩略图:Squid缓存 Web数据缓存:Memcached
38. QQvideo的一些数据HAProxy: 每天转发HTTP请求:5500万 CPU占用率:10~20% <增加图片> 图片Squid: 命中率:90% <增加图片> Memcached: 命中率:40%左右 <增加图片>
39. 相关软件介绍
40. HAProxyhttp://haproxy.1wt.eu 特色 L7交换 采用epoll,效率很高 配置简单灵活,部署很容易 Graceful restart – 不影响已有连接 Web监控界面 – 清晰直观 内容分发(Content Switching) ACL定义规则 ACL灵活组合选择分发backend 请求/响应头改写 负载均衡和过载保护 负载均衡策略:加权round-robin、Source、URL Sticky sessions 接入连接数限制 后端服务器健康监测
41. HAproxy与LVS比较HAProxy效率不如LVS User级 vs. 内核级 HAProxy部署简单 一个程序 vs. 内核patch HAProxy功能丰富 L7 vs. L4 HAProxy性能可满足大部分网站需要,达到较大规模时可改用LVS.
42. HAproxy配置URL分发规则多个server池Sticky sessions健康检测和接入限制
43. HAProxy Web界面
44. (本页无文本内容)
45. Memcachedhttp://www.danga.com/memcached 高性能的,分布式的内存对象缓存系统 Epoll驱动,效率高 高效的内存管理机制 缓存对象可设置Expire时间 使用简单,部署更简单 万金油 Web Cache 昵称缓存 用户观看历史 后台管理系统 用户操作频率控制
46. Memcached运行状况
47. Squidhttp://www.squid-cache.org 有力的竞争者 Varnish!
48. Squid监控
49. 谢 谢!
关键词
软件架构
方案
Apache
HTTP
Nginx
相关PPT
腾讯大讲堂08-可扩展Web架构探讨
可扩展web架构探讨
腾讯大讲堂59_数据挖掘
腾讯大讲堂09-如何建设高性能网站
腾讯大讲堂14-QQ直播(QQLive)介绍
“大型”网站技术架构探讨
腾讯大讲堂11-拍拍ce工作经验分享
腾讯LAMP架构(内部稿件)
腾讯1.4亿在线背后的故事(1)
腾讯1.4亿在线背后的故事(2)