大型网站架构经验ppt课件.ppt

上传人:飞****2 文档编号:82402757 上传时间:2023-03-25 格式:PPT 页数:46 大小:623.50KB
返回 下载 相关 举报
大型网站架构经验ppt课件.ppt_第1页
第1页 / 共46页
大型网站架构经验ppt课件.ppt_第2页
第2页 / 共46页
点击查看更多>>
资源描述

《大型网站架构经验ppt课件.ppt》由会员分享,可在线阅读,更多相关《大型网站架构经验ppt课件.ppt(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确大型网站架构专题大型网站架构专题顾费勇()在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确本次培训内容1.大型网站有何不同2.大型网站架构演变分析在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确大型网站设计是门艺术在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确一一、大型网站有何不同大型网站有何不同大型网站特点

2、:1.大量并发用户请求2.超大容量数据在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Flickr 网站网站(最受欢迎的照片共享网站最受欢迎的照片共享网站)。每天多达40亿次的查询请求。squid总计约有3500万张照片(硬盘+内存)。squid内存中约有200万张照片。总计有大约4亿7000万张照片,每张图片又生成不同尺寸大小的45份图片。每秒38,000次Memcached请求(Memcached总共存储了1200万对象)。超过2PB存储,其中数据库12TB。每天新增图片超过40万(周日峰值超过200万,约1.5TB)。超过8百5

3、0万注册用户。超过1千万的唯一标签(tags)在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确1.如果这个网站要你设计你会怎么做?2.有哪些问题?3.应该怎么解决?在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确需要考虑的问题需要考虑的问题1.服务器能撑住那么大请求量吗?2.如何存储照片3.如何快速读取出照片4.数据库能顶住压力吗?5.查询速度会不会太慢6.这么大量的请求IO吃得消吗?7.内存会不会出现问题。在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一

4、定的梯度,由浅入深,所提出的问题也很明确我们学生现在的系统架构我们学生现在的系统架构我们现在的系统架构比较简单:1.Tomcat/Weblogic+Mysql+Java代码2.所有东西都部署在一台机器上3.无论动态内容还是静态内容都由tomcat/weblogic来处理4.所有静态文件也都放在和tomcat/weblogic服务器同一台机器上在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确现有框架存在的问题现有框架存在的问题我们的系统架构是一般的小型网站都会这么采取的架构,结构简单资源也很省,开发方便。由于并发访问次数少,也不太有性能

5、问题。但是一旦要做成一个大型网站,问题就接踵而来了。这样的框架最多能支持每秒几十个的请求,多点就可能会非常非常慢或者停止响应。显然与大型网站的要求还相差甚远。有人可能会问,性能不行买好的服务器有超强CPU、超大内存、超大硬盘,不就可以了吗?貌似可行,但是实际上不太可能这么做。第一点这样的机器非常非常贵,购买几十台普通服务器了。第二点性能提升也不明显。第三点,以后难以扩展,如果需求更多了是不是就要买更贵的服务器啊?在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Flckr系统架构图系统架构图在整堂课的教学中,刘教师总是让学生带着问题来学

6、习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Flckr系统架构系统架构PairofServerIronsLoadBalancerSquidCaches反向代理,用于缓存静态的HTML和照片NetAppNetApp公司的Filer,NAS存储设备,用于存储照片PHPAppServers运行REDHATLINUX,Apache上的PHP应用,Flickr网站的主体是大约6万行PHP代码没有使用PHPsession,应用是stateless,便于扩展,并避免PHPServer故障所带来的Session失效。每个页面有大约2735个查询(不知道为什么这么设计,个人觉得没有必要)另有专

7、门的ApacheWebFarm服务于静态文件(HTML和照片)的访问在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Flckr系统架构系统架构StorageManager运行私有的,适用于海量文件存储的FlickrFileSystemDualTreeCentralDatabaseMySQL数据库,存放用户表,记录的信息是用户主键以及此用户对以的数据库Shard区,从中心用户表中查出用户数据所在位置,然后直接从目标Shard中取出数据。“DualTree架构是”MasterMaster和“Master-Slave的有效结合,双Maste

8、r避免了“单点故障”,MasterSlave又提高了读取速度,因为用户表的操作90以上是读。Master-mastershardsMySQL数据库,存储实际的用户数据和照片的元数据(MetaData),每个Shard大约40万个用户,120GB数据。每个用户的所有数据存放在同一个shard中。Shard中的每一个server的负载只是其可最大负载的50,这样在需要的时候可以Online停掉一半的server进行升级或维护而不影响系统性能。为了避免跨Shard查询所带来的性能影响,一些数据有在不同的Shard有两份拷贝,比如用户对照片的评论,通过事务来保证其同步。在整堂课的教学中,刘教师总是让学

9、生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Flckr系统架构系统架构MemcachedCluster中间层缓存服务器,用于缓存数据库的SQL查询结果等。BigSearchEngine-复制部分Shard数据(Ownerssingletag)到SearchEngineFarm以响应实时的全文检索。-其他全文检索请求利用Yahoo的搜索引擎处理(Flickr是Yahoo旗下的公司)服务器的硬件配置:-Intel或AMD64位CPU,16GBRAM-6-disk15KRPMRAID-10.-2Uboxes.服务器数量:(数据来源:April2008MySQLConf

10、erence&Expo)166DBservers,244webservers(不知道是否包括squidserver?),14Memcachedservers在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确二、大型网站架构演化二、大型网站架构演化没有任何一个网站一开始就是这么复杂的结构都是从简单结构一步步演化而来的包括Ebay,Facebook,Taobao等刚开始都没有考虑到他们能有今天的访问量以及数据量。他们是怎么演化过来的呢?我们一起来看一下大型网站的演化历程在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的

11、梯度,由浅入深,所提出的问题也很明确架构演变第一步假设现在有一个小网站就说吧。他是一个门户网站。托管了一台主机,并且有一定的带宽了,这个时候由于网站具备了一定的特色,吸引了部分人访问。刚开始一切都很好,流量不大,系统响应也正常。但过了一段时间之后,由于网站运营地很不错,访问的人越来越多,你逐渐发现你的系统压力越来越高,响应越来越慢了。你经过分析发现,这个时候比较明显的是数据库和你的应用相互影响。应用出问题了,数据库也很容易受影响;当数据库出问题的时候,应用也很容易受影响。在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确架构演变第一步:

12、物理分离webserver和数据库既然发现了问题,接下来我们来解决它。于是进入了第一步演变阶段:将应用和数据库从物理上分离,变成了两台机器,这个时候技术上没有什么新的要求,但你发现确实起到效果了,系统又恢复到以前的响应速度了,并且支撑住了更高的流量,并且不会因为数据库和应用形成互相的影响。这一步架构演变对技术上的知识体系基本没有要求。在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确架构演变第二步l好景不长,随着访问的人越来越多,你发现响应速度又开始变慢了。n查找原因,发现是访问数据库的操作太多,导致数据连接竞争激烈,所以响应变慢,但数

13、据库连接又不能开太多,否则数据库机器压力会很高n也就是说我们最好能够减少数据库访问的连接数,但又不能影响用户体验。怎么办呢?在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确架构演变第二步:增加页面缓存n于是想到了缓存n考虑采用缓存机制来减少数据库连接资源的竞争和对数据库读的压力,这个时候首先也许会选择采用squid等类似的机制来将系统中相对静态的页面(例如一两天才会有更新的页面)进行缓存(当然,也可以采用将页面静态化的方案),这样程序上可以不做修改,就能够很好的减少对webserver的压力以及减少数据库连接资源的竞争,这一步涉及到了

14、这些知识体系:前端页面缓存技术,例如squid,如想用好的话还得深入掌握下squid的实现方式以及缓存的失效算法等K,于是开始采用squid来做相对静态的页面的缓存。在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确架构演变第三步n增加了squid做缓存后,整体系统的速度确实是提升了,webserver的压力也开始下降了,但随着访问量的增加,发现系统又开始变的有些慢了n毕竟一个网站的静态页面还是有限,能够被缓存的请求数量也不够多,系统的绝大部分页面还是动态页面。能够被有效缓存的大部分是图片、js、css等静态内容。n比如今天我页面上有一块地方是个人档案,这个内容基本两三个月才更新一次,缓存起来效果会很好。但是页面其他内容是动态从数据库中加载的,我们不能把整个页面交给squid来缓存。怎么办呢?在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确架构演变第三步:增加页面片段缓存n考虑采用类似ESI之类的页面片段缓存策略,OK,于是开始采用ESI来做动态页面中相对静态的片段部分的缓存。这一步涉及到了这些知识体系:页面片段缓存技术,例如ESI等,想用好的话同样需要掌握ESI的实现方式等;ESI参考资料:http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁