时间:2014-07-03 13:48:20 来源: 互联网 复制分享
已经有读者在迫不及待的问怎么去掉了IOE,别急,在去掉IOE之前还有很长的路要走。行癫他们买回来小型机之后,我们用上了Oracle,七公带着一帮DBA在优化SQL和存储,行癫带着几个架构师在研究数据库的扩展性。Oracle本身是一个封闭的系统,用Oracle怎么做扩展?用现在一个时髦的说法就是做“分库分表”。
我们知道一台Oracle的处理能力是有上限的,它的连接池有数量限制,查询速度跟容量成反比。简单的说,在数据量上亿、查询量上亿的时候,就到它的极限了。要突破这种极限,最简单的方式就是多用几个Oracle数据库。但一个封闭的系统做扩展,不像分布式系统那样轻松。我们把用户的信息按照ID来放到两个数据库里面(DB1/DB2),把商品的信息跟着卖家放在两个对应的数据库里面,把商品类目等通用信息放在第三个库里面(DBcommon)。这么做的目的除了增加了数据库的容量之外,还有一个就是做容灾,万一一个数据库挂了,整个网站上还有一半的数据能操作。
数据库这么分了之后,应用程序有麻烦了,如果我是一个买家,买的商品有DB1的也有DB2的,要查看“我已买到的宝贝”的时候,应用程序怎么办?必须到两个数据库里面分别查询出来对应的商品。要按时间排序怎么办?两个库里面“我已买到的宝贝”全部查出来在应用程序里面做合并。还有分页怎么处理?关键字查询怎么处理?这些东西交给程序员来做的话会很悲催,于是行癫在淘宝的第一个架构上的作品就来解决了这个问题,他写了一个数据库路由的框架DBRoute,这个框架在淘宝的Oracle时代一直在使用。后来随着业务的发展,这种分库的第二个目的——容灾的效果就没有达到。像评价、投诉、举报、收藏、我的淘宝等很多地方,都必须同时连接DB1和DB2,哪个库挂了都会导致整个网站挂掉。
上一篇说过,采用EJB其实是和Sun的工程师妥协的结果,在他们走了之后,EJB也逐渐被冷落了下来。在05、06年的时候,spring大放异彩,正好利用spring的反射(IoC)模式替代了EJB的工厂模式,给整个系统精简了很多代码。
上一篇还说过,为了减少数据库的压力,提高搜索的效率,我们引入了搜索引擎。随着数据量的继续增长,到了2005年,商品数有1663万,PV有8931万,注册会员有1390万,这给数据和存储带来的压力依然山大,数据量大,性能就慢。亲,还有什么办法能提升系统的性能?一定还有招数可以用,这就是缓存和CDN(内容分发网络)。
你可以想象,九千万的访问量,有多少是在商品详情页面?访问这个页面的时候,数据全都是只读的(全部从数据库里面读出来,不写入数据库),如果把这些读操作从数据库里面移到内存里,数据库将会多么的感激涕零。在那个时候我们的架构师多隆大神,找到了一个基于 Berkeley DB 的开源的缓存系统,把很多不太变动的只读信息放了进去。其实最初这个缓存系统还比较弱,我们并没有把整个商品详情都放在里面,一开始把卖家的信息放里面,然后把商品属性放里面,商品详情这个字段太大,放进去受不了。说到商品详情,这个字段比较恐怖,有人统计过,淘宝商品详情打印出来平均有5米长,在系统里面其实放在哪里都不招人待见。笔者清楚的记得,我来淘宝之后担任项目经理做的第一个项目就是把商品详情从商品表里面给移出来。这个字段太大了,查询商品信息的时候很多都不需要查看详情,它跟商品的价格、运费这些放在一个表里面,拖慢了整个表的查询速度。在05年的时候,我把商品详情放在数据库的另外一张表里面,再往后这个大字段被从数据库里面请了出来,这也让数据库再一次感激涕零。
到现在为止,整个商品详情的页面都在缓存里面了,眼尖的读者可能会发现现在的商品详情不全是“只读”的信息了,这个页面上有个信息叫“浏览量”,这个数字每刷新一次页面就要“写入”数据库一次,这种高频度实时更新的数据能用缓存吗?如果不用缓存,一天几十亿的写入,数据库会怎么样?一定会挂掉。那怎么办?亲……先不回答你(下图不是广告,让你看看浏览量这个数据在哪里)
CDN这个工作相对比较独立,跟别的系统一样,一开始我们也是采用的商用系统。后来随着流量的增加,商用的系统已经撑不住了,LVS的创始人章文嵩博士带人搭建了淘宝自己的CDN网络。在本文的引言中我说过淘宝的CDN系统支撑了800Gbps以上的流量,作为对比我们可以看一下国内专业做CDN的上市公司ChinaCache的介绍——“ChinaCache……是中国第一的专业CDN服务提供商,向客户提供全方位网络内容快速分布解决方案。作为首家获信产部许可的CDN服务提供商,目前ChinaCache在全国50多个大中城市拥有近300个节点,全网处理能力超过500Gbps,其CDN网络覆盖中国电信、中国网通、中国移动、中国联通、中国铁通和中国教育科研网等各大运营商。”——这样你可以看得出淘宝在CDN上面的实力,这在全世界都是数一数二的。另外因为CDN需要大量的服务器,要消耗很多能源(消耗多少?在前两年我们算过一笔帐,淘宝上产生一个交易,消耗的电足以煮熟4个鸡蛋)。这两年章文嵩的团队又在研究低功耗的服务器,在绿色计算领域也做了很多开创性的工作。淘宝CDN的发展需要专门一个章节来讲,想先睹为快的可以看一下笔者对章文嵩的专访:http://qing.weibo.com/1866752224/6f4460e033000jme.html
回想起刚用缓存那段时间,笔者还是个小菜鸟,有一个经典的错误常常犯,就是数据库的内容更新的时候,忘记通知缓存系统,结果在测试的时候就发现我改过的数据怎么在页面上没变化呢。后来做了一些页面上的代码,修改CSS和JS的时候,用户本地缓存的信息没有更新,页面上也会乱掉,在论坛上被人说的时候,我告诉他用ctrl+F5刷新页面,然后赶紧修改脚本文件的名称,重新发布页面。学会用ctrl+F5的会员对我佩服的五体投地,我却惭愧的无地自容。
有些技术的发展是顺其自然的,有些却是突如其来的。到2007年的时候,我们已经有几百台应用服务器了,这上面的java应用服务器是weblogic,而weblogic是非常贵的,比这些服务器本身都贵。有一段时间多隆研究了一下jboss,说我们换掉weblogic吧,于是又省下了不少银两。那一年,老马举办了第一届的“网侠大会”,会上来的大侠中有一位是上文提到的章文嵩,还有一位曾经在jboss团队工作,我们也把这位大侠留下了,这样我们用起jboss更加有底气了。
这些杂七杂八的修改,我们对数据分库、放弃EJB、引入Spring、加入缓存、加入CDN、采用开源的Jboss,看起来没有章法可循,其实都是围绕着提高容量、提高性能、节约成本来做的,由于这些不算大的版本变迁,我们姑且叫它2.1版吧,这个版本从构图上来看有3只脚,是不是稳定了很多?
架构图如下:
由于特殊原因,不想与对方进行互换,如何处理? 解决方案: 在互换列表里面选中需要取消互换链接的那行,右击选择,我要下链(输入你的下链理由)点确认即可。 确认后,这条记录将在您的互换...【详细】
说明:在没有写明下链理由情况下,直接删除网站链。这种就属于恶意下链。 解决方案:您可以直接互换列表里面选择对方链接一行,右击重新检测一下,如还是提示异常,则人工打开对方网站...【详细】
网站列表-数据更新说明 1:系统会每隔24小时对网站所有SEO数据进行自动更新(登陆客户端的情况下)例如:今天早上添加的网站并更新过,到了明天早上八点登陆客户端,系统会自动更新,如果...【详细】
网站列表删除网站说明: 一:删除网站后所有网站之前的数据会保留在服务器(如:换链记录,准时率,被投诉,超时次数等等),再次添加,这些属性会随着网站添加至新的会员属性中。 二:如有误删除...【详细】
如何暂停网站互换链接? 选择相应的网站,点击“修改”,选择“暂停网站”即可。暂停网站后,该网站不会在互换大厅显示。...【详细】
使用教程第一步登陆“换链神器”进入“网站列表”点击“添加网站”并设置换链匹配条件,添加完网站后系统会在十分钟后自动更新所添加网站SEO数...【详细】
向安卓用户的新年献礼!享受与众不同的刷机体验! 2013新年伊始,甜椒刷机助手为答谢广大安卓手机用户对甜椒的支持与信赖,倾情推了甜椒刷机助手V3...【详细】
微软刚刚放出新近发布的Project Professional 2013的60天试用下载链接。Project 2013专业版将仅适用于Windows 7和Windows 8,并可在32位和64位系统...【详细】
之前小编给大家介绍的视频编辑制作软件《拍大师》,小编亲测了该软件的“拍游戏”“拍我秀秀”和“拍照截图”功能...【详细】
末日过后,2013惊喜连连,PC版拍大师2.0变速版刚刚推出不久,移动版拍大师即闪亮登场,拉开爱拍移动的序幕。本次拍大师移动版先推出了Android系统的安卓...【详细】
玩刷机,闹元宵。在一年一度的元宵节到来之际,甜椒发布V3.0.5元宵版,与机友们一起闹元宵。凡使用甜椒刷机助手的用户,每天都能参加幸运大转盘活动,每天...【详细】
末日会不会来?玛雅预言会不会真的发生?最近我们都有太多关于末日的想法啦!尽管我们没办法确切的知道到底有没有世界末日,但大多数网友们还是认为不管明天...【详细】
无锡永中软件有限公司日前发布了全新的永中Office 2013 个人版,新版本以全新的界面体现清新时尚,即时菜单、智能图表、功能区的压缩和助记符的提供...【详细】
之前小编给大家介绍了拍大师这款最简单的视频制作编辑软件,还教大家怎么使用有拍大师的拍游戏视频功能,相信大家看了之后都会使用拍大师的录游戏功...【详细】
近日,微软在其官方博客上发布消息表示他们已经在Office 2013中加入了对国际用户以及多种语言的支持,其中新加入的语言有位于亚洲地区的印度语、马来...【详细】
《我是歌手》好声音在路上,拍大师圆你歌手梦!由浙江卫视强力打造的《中国好声音》热度仍没褪去,又一个叫做《我是歌手》的音乐对决综艺秀火了起来,各...【详细】
2012年,百度曾面向泰国市场推出了电脑优化工具Baidu PC Faster,现在,百度终于亮出了大招,正式推出了百度杀毒软件2013(Baidu Antivirus 2013),不过...【详细】
对于WPS Office系列的办公软件,相信大家都不会陌生,它一直以免费且高效收到广大用户喜爱。最新版WPS Office 2012全新的界面选择、全新的首页模板、...【详细】
今日是甜椒刷机助手为刷机界打开新纪元的一天,中文触摸recovery模式发布。中文触摸recovery改变了刷机时候的技术编程显示方式,通过图示的方式显示...【详细】
龙腾摆尾辞旧岁,金蛇起舞闹新春!OneKey一键还原提前携礼给各位朋友拜年,恭祝各位友人在新的一年里:心想事成,万事如意,阖家幸福! 官方下载地址:Onek...【详细】