说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

高性能Web应用打造攻略:扩展过程中20个最大的绊脚石

HTML文档下载 WORD文档下载 PDF文档下载
成功不可能一蹴而就,任何高性能、大规模的Web应用都是慢慢扩展而来。然而通往成功的路上从来不缺乏艰辛,这里为大家分享对扩展性影响最大的20个绊脚石以及避免之道。

Sean Hull是Heavyweight Internet Group的创始人兼高级顾问,拥有20年以上技术顾问相关经验,曾为多家知名机构提供咨询,其中包括The Hollywood Reporter、Billboard、NBC Universal、Zagats、Rent the Runway及ideeli,这些高速增长的公司每个月处理接近1亿的独立访客。Hull在Amazon EC2部署和Linux及MySQL性能上有着丰富的经验。巨大流量的处理需涉及多个方面,其中包括网站扩展性、业务连续性、安全及架构挑战等。近日,Hull分享了高性能Web应用打造的经验,剖析了扩展之路上20个最大的绊脚石。以下为译文:

1. 二阶段提交

通常情况下,当数据库中的数据发生改变时,它需要同时被写入内存和硬盘。当一个提交发生时,传统数据库需要负责数据在真实存储媒质上的持久化。牢记,内存的数据在崩溃或者重启后都会消失。即使数据已经在数据库中缓存,数据库仍然需要将其持久化到磁盘上,MySQL的二进制日志及Oracle的redo日志都符合这个要求。

通过MySQL集群或者类似DRBD(Distributed Replicated Block Device)或者Amazon Multi-AZ(Multi-Availability Zone)的分布式文件系统,提交并不仅仅是在本地发生,同时也在远端。二阶段提交意味着需要从远端得到反馈,鉴于网络及一些其它的延时,提交速度可能会被毫秒级的降低,仿佛高速公路上的所有汽车都因重载变慢。如有考虑使用Multi-AZ或者读备份,不妨查看Amazon RDS(Relational Database Service)与MySQL的比较。

同步复制同样会出现这些问题,因此MySQL解决方案是半同步的,这也可以看做是在二阶段提交上的一些让步。

2. 缓存不足

在所有层中缓存的作用都至关重要,那么什么地方最需要使用缓存:浏览器、页面、对象还是数据库存?下面不妨统统试一下。

浏览器缓存似乎遥不可及,除非你清楚浏览器是从Web Server中取出指令及其渲染的页面。因此,如果包含的对象有一个比较长的生命周期,浏览器将会缓存他们,不需要再次进行读取。这不仅会加快用户的浏览速度,同样会有益于Server对网站的托管,因为会切实的减少用户的二次读取。

猛戳这里查看更多浏览器缓存相关,确保设置了期满头文件及缓存控制。

页面缓存需要使用类似Varnish的技术,可以将它看成一个迷你的高速、低开销Web Server。它不可以支撑类似Apache可以的复杂页面,但是它可以让非常简单的页面更快。因此位于Apache之前,用于减少负载,让Apache可以处理更加复杂的页面。就像交通警察,在专注更复杂的机动车前,先给自行车放行。

对象缓存由类似memcache的组件完成,可以把它当做是应用程序的便利贴。做数据库查询时会先访问缓存寻求数据,如果发现了所需的数据,那么结果返回的时间将比访问数据库快10-100倍,这样就可以快速的构建页面,从而在眨眼间为用户呈现。如果它没有发现所需的数据,或者只发现了一部分,那么将会建立数据库请求并将返回的数据放于缓存中,让更多的后来者受益。

3. 缓慢的磁盘I/O、RAID 5、多租户存储

数据库中的一切都受到存储的限制,这里既包含了空间问题,也受设备读写的速度掣肘。

如果你使用实体服务器,那么一定要当心RAID 5,独立磁盘冗余阵列的一种,数据保护和奇偶性将严重的影响写操作。同时,如果其中一个磁盘损坏,那么这个阵列在磁盘重建时将变得非常缓慢。

这个方案一般使用RAID 10,它将为你提供独立的镜像集。这导致没有奇偶校验计算,从而不会影响重建时的速度。

云环境可能会涉及到类似于Amazon EBS(Elastic Block Store,一个类似于SAN的虚拟化磁盘)的技术。鉴于其基于网络,你必须与其它租户竞争存储的读写。因为每个存储能支撑的读写速度是固定的,所以你的邻居可能会影响到你网站及应用程序的读写速度。

最近,Amazon又公布了一个重量级产品Provisioned IOPS(每秒I/O操作)。对于技术专家来说看起来非常不错,但是对于其它人来说毫无价值。尽管如此,其依然重要,这意味着你可以锁定你数据库所需的磁盘性能。如果你想在Amazon上托管数据库,那么不妨多关注一下这个。

4. 串行处理

在超市结账时,如果有10个收银台开放,那么从事的是并行处理。如果每个收银台都在休息,只有一个登记处开放,那么从事的是串行操作。那么结账的队伍将变得非常长,不仅是结账人的心情受到影响,购物者也同样如此。这点经常发生在线路不够的大桥收费站以及许多人一起离场的体育场所。

网络应用需要严格的避免串行,因等待API调用而产生的阻塞,所有的后端节点都在等待一个搜索服务器,只要你应用程序的某处形成一个线就代表了串行化的发生,那么必须不惜一切代价去清除它。

5. 缺少Feature Flag

在给业务部门建立应用时,开发者一般从特性和功能入手。Feature Flag将至关重要,它让人们可以通过后端配置文件或管理员UI页面关闭或者打开特性。

为什么他们如此重要?如果你有早上4点的救火经验,那么你将明白启动应急计划的必要性。你需要可以关闭评级、评论以及应用程序其它的一些特性,这将不会导致整个系统崩溃。更重要的是,在新特性发布时,有些时候问题并不明显,直到一群互联网用户同时涌入。Feature Flag让你可以选择性的关闭一些功能,而不是关掉整个网站。

网上疯传iOS7概念设计:Dashboard是真是假? 过时的UI设计 Ubuntu手机系统前途不被看好 三星将于今年发布Tizen设备 将对苹果形成威胁? 分享9条经典的编程语录 国际著名黑客大赛介绍与比较 微软Azure CDN服务全球范围内出现宕机 双向多功能U盘:从Android设备到PC还有多远? 证明了自己:微软Win8获美国防部6.17亿订单 2013 Facebook黑客杯报名即将开始 解决Win8下IE10无法打开的故障 [简讯] Scala 2.10.0发布! 收购传闻:Apple一厢情愿还是Waze待价而沽 回顾过去,展望2013:移动开发引擎、工具和语言盘点 成本为0!Netflix开源工具Janitor Monkey清理AWS iOS开发者讲述在Google工作的三个月 GitHub历史上最糟糕宕机事故回放及反省 疑因竞争 谷歌有意让地图与WP手机不兼容 移动游戏开者必看:海外VC最关心什么? 淘宝UED:随侃设计师的个人素养 TIOBE 2013年1月:不负重望 Objective-C再次赢得桂冠! 大数据:商业或技术的挑战? 开源移动统计:Cobub Razor近期版本大升级 无人机应用,为何屡遭苹果拒绝 2013年Java继续火的五大理由 Rails所有版本都有SQL注入漏洞?其实没那么严重 如何设置Windows Server 2012 NTFS权限 智能手机大局已定 HTC难扭转乾坤? 比谷歌手表更酷!基于大数据分析的睡衣 众投资金:改变了移动游戏开发的一切一切 这些科技产品和革新或在今年“横空出世”?! 现代Objective-C七宗罪 请教Rave打印报表中的问题 感谢青润老大电话回答问题! 如何在ACTIVEX 里补加入 LICENSE ? 谁然认识子飞鱼啊 关于一个视图的问题 有谁写过医务室的程序的,请指点一下!提点建议! 高分求解水晶报表简单问题(在线等) 请教jmail的低级问题! 关于APPLICATION里放WAV文件的问题~超简单,送分 JB8.0开发 javabean问题(初级) 数据库建模用什么软件? *.xmf是什么文件呀!用什么软件才能打开! 事到如今,我依然最喜欢听郑智化的歌~~ 怎么用php做站内搜索? 什么是硬盘的序列号,它是怎么来的 有谁写过医务室药品进销存方面的程序的,请指点一下!提点建议! jbuilder中说找不到路径,该怎么配置啊 如何彻底删除DBF中的记录 _ConnectionPtr 对象在 Close()之前怎么判断它是否已经关闭?高分相送 请教linux下omniORB CORBA服务器的问题 如何旋转控件 无法正确显示ACCESS数据的问题 索尼爱立信t68ie 有 和弦铃声吗??????????????????? 当把htm页群发邮件,如何能实现对方用文本格式浏览什么都不显示,只有超文本才正常显示? 如何判断自己的程序窗口的坐标位置 请问:关于POINT与LODWORD之间的转换方法? 急!!!!tomcat服务器,linux系统下的JSP文件如何解决中文乱码问题?必有重谢! 急,string的如何插入到access数据库中memo类型的字段 怎么生成动态数组? 有谁给个下载Visual C++ 的地址,因为机器没光驱,不好买盘装(谢谢) GUI高手请进 [转]今年高考首例满分作文(爆笑)>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <<delphi6开发者指南一书中的小问题 呜呜呜!!没人回答,再提!!怎么读出上传的文件内容,(根据文件路径/文件名链接打开)? bmp 图形格式转化成 jpg格式? 在Domino中,Notes命名域、Notes网络域、TcpIp网络域有什么区别,如何进行设置? 菜鸟提问 刚用JB就受挫!!!! 表名、列名都用中文会影响效率吗??? 我删除自己发的帖子怎么也会被扣信誉分? PHP3如何向ACCESS数据库增加一个记录! 第一次编译通过,再编译就一直报错。。 想了解一下上海交通大学软件学院软件工程硕士的情况,读过的或了解的请联系msn:w__j76@hotmail.com 请问如何读出某一指定point点的 颜色RGB值? 有八楼的程序员吗?给分! [讨论]滚动条的秘密 人邮或清华的高程试题分析,哪里有下载!! DirectX,OpenGL 是什么呀?是用于什么方面的呀? 请大家帮帮我吧。我快闷死了。 用BDE连接,程序在其它机子上不能运行 一个关于查询效率的探讨! 一个导数的基本问题= =加速度是dv/dt,也就是速度对时间的导数吗?还有其中单单一个dv或dt的是什么?积分以后是什么东西? 相遇相识恨想离,相遇想离恨相识. 话不投机半句多”是什么意思啊!? 一个关于导数的入门问题导数的几何意义既然是某点的切线的斜率 那么 每条曲线应该有无数个导数才对啊 那么用导数公式求出来的是什么啊? 已知点m(a,-b)在第二象限 点n(a+b,-ab)在第几象限 话不投机半句多是什么意思 很少有人问这个问题难道是说 半句话都不能相合在一起吗! 用成语来概括伟人的高尚的品质: 1.周恩来. 2.雷锋. 3.桑娜. 4.孔繁森. 5.任长霞.桑娜如果不知道就算了,至少要两个成语. 已知a<b,b>0,则点M(ab-1,a-b)在第____象限. 酒逢知己千杯少,话不投机半句多,有什么含义? 已知0 任长霞可以用哪个成语来形容 投影仪投影大小的问题比如epson PowerLite8350和epson PowerLite 95 Multimedia Projector两架机子在同等距离下投影出来的大小是不是好的那架可以放的比较大?(在都可以看的清楚的情况下)并不是一定 高中数学: 已知0 GPS怎样关闭FM发射 三角形面积是12平方厘米,平行四边形的面积是多少平方厘米 如图所示,△ABC的三个顶点的坐标分别是A(4,3)B(3,1)C(1,2)(1)将△ABC三个顶点的横坐标都减去6,纵坐标不变,分别得到点A1,B1,C1.依次连接A1,B1,C1各点.所得△A1B1C1与△ABC的大小,形状和位置上有什么 中微子超光速这是为什么?这和量子纠缠有什么关系? 一个平行四边形的面积是12平方厘米,与它等底等高的三角形的面积是? 两条直线垂直有什么性质.例如: l1:kx+2y=k+4 l2:2x+y=1 求k?两条直线垂直有什么性质.例如: l1:kx+2y=k+4 l2:2x+y=1 ,l1与l2垂直. 求k? 量子纠缠与超光速所谓超光速应该是一种速度,速度反映物体[运动]快慢.而即使肯定了有量子纠缠,正反粒子之间的影响没有什么物体在运动进行传递,这也算超光速么?那么超距作用如果存在能 如右图,三角形的面积是12平方厘米,平行四边形的面积是( )平方厘米,平行四边形的面积和梯形面积的最简整如右图,三角形的面积是12平方厘米,平行四边形的面积是( )平方厘米,平行四边形 当X取任意数时,式子X的平方-2X+3大于0 B.小于0 等于0 不能确定 京华4302 GPS FM发射怎么用啊 若点M(a,-b)在第二象限,则点N(a+b,-ab)在第几象限? 设集合B={x|x平方+2(a+1)x+a平方-1}.A={x平方+2x-3}A交B=B,求实数a的值 GPS FM发射车上怎么收不到 求《童年》摘抄 奇联的意思 我想学中国国学和哲学,25岁,按中国现行教育模式接受的教育,对课本之外的东西很少涉猎,对中国国学和哲学更是一知半解,现在想学一下中国国学和哲学,该从哪里入手,请百度朋友指点.可否帮 若点M(a,-b)在第四象限,则点N在(a+b,-ab)在 雨亦奇的意思 国学是什么?与哲学怎么区别? 武汉投影机灯泡哪有批发的? 快给我两个ABA性的词语. 中国当代或现代健在的国学和哲学大家有哪些人?其代表作是什么? MH-A 半自动打包机怎样调节打包带的厚度 车载手机支架介绍 我的英文名是Leslie Chiang ,Chiang 要怎么读 ,边个教我阿 M点坐标为(a,b)且a 假如超光速的机器实现了,我们真的可以变的很年轻了 Chris Chiang 和 Chris Kwong 是什么意思?麻烦翻译一下,谢谢. 自行车支架,会对车架有损坏?买了辆美利达战神,听说支架会对车架有损坏,导致其变形?如图,求科普 Chiang Rai 虚幻大千两茫茫,一邂逅,终难忘.相逢主人留一笑,不相识, 关于电磁振荡自感线圈和电容器并联的一个问题就是自感线圈和电容器并联接在一个电源上 自感线圈电阻不计 那在断开开关的时候是电容器放电还是自感线圈给电容器充电?而且这两个并联 Chiang 用英语怎么读 下雨前和下雨后空气中的尘埃粒子的含量会有什么变化? 春字开头、结尾的成语接龙.如;妙手回春——春回大地······快点头今天晚上20个以上 母爱是一种什么爱啊? 拜托帮忙,作业问题:“下雨前的尘埃粒子数量比下雨后少”的结论正确吗?理由?问题的前提是某同学分别采集和测量了下雨前一个地方和下雨后另一个地方空气中尘埃粒子数量.测定的结果前 如果人在超光速运动的机器上,那我们看到是一片黑暗,还是我们的过去? 母爱是一种什么我是一种什么 灰尘为什么会让天空下雨? 把直线y=2x向上平移3个单位,就得到直线(),它经过()象限 如果点M(a+b,ab)在第二象限,那么点N(a,b)在第几象限帮我重新做一下到底对不对啊....都说不对... 已知直线L1:(k-3)x+(4-k)y+1=0,与L2:2(k-3)x-2y+3=0,平行,则k等于? 《相逢何必曾相识,相交何必曾相知》的意思有谁能够理解? 相见何必尘相识是啥意思 已知直线L经过点P(-1,1),它被两平行直线L1:x+2y-1=0,L2:x+2y-3=0,所截得的线段M1M2的中点M在直线L3:x-y-1=0上,试求直线L的方程. 日本76件国家级重要文化遗产下落不明中国等亚洲多国要美解释美使馆监听驻在日食材造假现象屡禁不止 多家高级酒店美国一老将称美国实际为全球最大核威胁手机预装软件审核今起实施 360卸载沙特女性反抗禁驾令 小伙因改编歌曲助中国投资者青睐澳房产 投资额将达86美将俄歌星列入黑名单 俄抗议表示不可日本最先进潜艇“黑龙”举行下水仪式(美国一客机收到炸弹威胁 现已紧急转降“岩浆行星”震惊科学家:它本不该存在日本万圣节:“僵尸”涌上街头占领东京美参院情报委拟法案缩减监听记录 被批亚洲最大气球盛会登陆日本 七彩气球装俄媒:中美等十余国将参与2014年在奥巴马出席投资美国峰会 游说外商投资美高官:以色列突袭叙利亚 目标或为俄台湾花莲地震致2人受伤 已发生余震2中国科学家研制出可使生物隐形的“隐身中国艺术市场面临新突破:渴望与财富深镇海炼化计划4年投入12.5亿实施2马桶堵了,我得通一下!加泰罗尼亚能从西班牙独立出去吗福建“排污权”交易一年来:环保部点赞“苗服”网上博物馆“梦想钥匙”为千所山区学校图书馆都要虐单身狗,还能自习吗?五级法律援助网络基本形成青年典型分享青春故事省公安厅调查顾文涉嫌纪念空军成立66周年“双11”福利:提早1小时下班湘江上游河道清洁耕耘百亿产业 打造卓越粮企让买家吓了一跳湘潭昭山拆违控违取得阶段性战果应对老龄化,推迟退休年龄势在必行艾紫馨:11月11早白银宁贵银原油沥企业别拿民族大义为自己背书话剧《人赃俱获》首演 房子斌程皓枫P鸵鸟式回复无法平息名表风波武磊:希望明年上港夺冠 已成熟但仍需
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘